In file included from main.cpp:10: projectiles.h: In member function ‘virtual void fragment::move(int)’: projectiles.h:87:57: error: no match for ‘operator*’ (operand types are ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} and ‘int’) 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; In file included from /usr/include/glm/detail/type_vec2.hpp:398, from /usr/include/glm/ext/vector_bool2.hpp:5, from /usr/include/glm/vec2.hpp:5, from /usr/include/glm/glm.hpp:116, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_vec2.inl:557:55: note: candidate: ‘template constexpr glm::vec<2, T, Q> glm::operator*(const glm::vec<2, T, Q>&, T)’ 557 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<2, T, Q> operator*(vec<2, T, Q> const& v, T scalar) | ^~~~~~~~ /usr/include/glm/detail/type_vec2.inl:557:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: template argument ‘3’ does not match ‘2’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_vec2.hpp:398, from /usr/include/glm/ext/vector_bool2.hpp:5, from /usr/include/glm/vec2.hpp:5, from /usr/include/glm/glm.hpp:116, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_vec2.inl:565:55: note: candidate: ‘template constexpr glm::vec<2, T, Q> glm::operator*(const glm::vec<2, T, Q>&, const glm::vec<1, T, Q>&)’ 565 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<2, T, Q> operator*(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2) | ^~~~~~~~ /usr/include/glm/detail/type_vec2.inl:565:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: template argument ‘3’ does not match ‘2’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_vec2.hpp:398, from /usr/include/glm/ext/vector_bool2.hpp:5, from /usr/include/glm/vec2.hpp:5, from /usr/include/glm/glm.hpp:116, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_vec2.inl:573:55: note: candidate: ‘template constexpr glm::vec<2, T, Q> glm::operator*(T, const glm::vec<2, T, Q>&)’ 573 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<2, T, Q> operator*(T scalar, vec<2, T, Q> const& v) | ^~~~~~~~ /usr/include/glm/detail/type_vec2.inl:573:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::vec<2, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_vec2.hpp:398, from /usr/include/glm/ext/vector_bool2.hpp:5, from /usr/include/glm/vec2.hpp:5, from /usr/include/glm/glm.hpp:116, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_vec2.inl:581:55: note: candidate: ‘template constexpr glm::vec<2, T, Q> glm::operator*(const glm::vec<1, T, Q>&, const glm::vec<2, T, Q>&)’ 581 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<2, T, Q> operator*(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2) | ^~~~~~~~ /usr/include/glm/detail/type_vec2.inl:581:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: template argument ‘3’ does not match ‘1’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_vec2.hpp:398, from /usr/include/glm/ext/vector_bool2.hpp:5, from /usr/include/glm/vec2.hpp:5, from /usr/include/glm/glm.hpp:116, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_vec2.inl:589:55: note: candidate: ‘template constexpr glm::vec<2, T, Q> glm::operator*(const glm::vec<2, T, Q>&, const glm::vec<2, T, Q>&)’ 589 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<2, T, Q> operator*(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2) | ^~~~~~~~ /usr/include/glm/detail/type_vec2.inl:589:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: template argument ‘3’ does not match ‘2’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_vec3.hpp:431, from /usr/include/glm/ext/vector_bool3.hpp:5, from /usr/include/glm/vec3.hpp:5, from /usr/include/glm/glm.hpp:117, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_vec3.inl:670:55: note: candidate: ‘template constexpr glm::vec<3, T, Q> glm::operator*(const glm::vec<3, T, Q>&, T)’ 670 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator*(vec<3, T, Q> const& v, T scalar) | ^~~~~~~~ /usr/include/glm/detail/type_vec3.inl:670:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: deduced conflicting types for parameter ‘T’ (‘float’ and ‘int’) 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_vec3.hpp:431, from /usr/include/glm/ext/vector_bool3.hpp:5, from /usr/include/glm/vec3.hpp:5, from /usr/include/glm/glm.hpp:117, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_vec3.inl:679:55: note: candidate: ‘template constexpr glm::vec<3, T, Q> glm::operator*(const glm::vec<3, T, Q>&, const glm::vec<1, T, Q>&)’ 679 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator*(vec<3, T, Q> const& v, vec<1, T, Q> const& scalar) | ^~~~~~~~ /usr/include/glm/detail/type_vec3.inl:679:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::vec<1, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_vec3.hpp:431, from /usr/include/glm/ext/vector_bool3.hpp:5, from /usr/include/glm/vec3.hpp:5, from /usr/include/glm/glm.hpp:117, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_vec3.inl:688:55: note: candidate: ‘template constexpr glm::vec<3, T, Q> glm::operator*(T, const glm::vec<3, T, Q>&)’ 688 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator*(T scalar, vec<3, T, Q> const& v) | ^~~~~~~~ /usr/include/glm/detail/type_vec3.inl:688:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::vec<3, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_vec3.hpp:431, from /usr/include/glm/ext/vector_bool3.hpp:5, from /usr/include/glm/vec3.hpp:5, from /usr/include/glm/glm.hpp:117, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_vec3.inl:697:55: note: candidate: ‘template constexpr glm::vec<3, T, Q> glm::operator*(const glm::vec<1, T, Q>&, const glm::vec<3, T, Q>&)’ 697 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator*(vec<1, T, Q> const& scalar, vec<3, T, Q> const& v) | ^~~~~~~~ /usr/include/glm/detail/type_vec3.inl:697:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: template argument ‘3’ does not match ‘1’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_vec3.hpp:431, from /usr/include/glm/ext/vector_bool3.hpp:5, from /usr/include/glm/vec3.hpp:5, from /usr/include/glm/glm.hpp:117, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_vec3.inl:706:55: note: candidate: ‘template constexpr glm::vec<3, T, Q> glm::operator*(const glm::vec<3, T, Q>&, const glm::vec<3, T, Q>&)’ 706 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator*(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2) | ^~~~~~~~ /usr/include/glm/detail/type_vec3.inl:706:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::vec<3, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_vec4.hpp:504, from /usr/include/glm/ext/vector_bool4.hpp:5, from /usr/include/glm/vec4.hpp:5, from /usr/include/glm/glm.hpp:118, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_vec4.inl:864:55: note: candidate: ‘template constexpr glm::vec<4, T, Q> glm::operator*(const glm::vec<4, T, Q>&, const T&)’ 864 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<4, T, Q> operator*(vec<4, T, Q> const& v, T const & scalar) | ^~~~~~~~ /usr/include/glm/detail/type_vec4.inl:864:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: template argument ‘3’ does not match ‘4’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_vec4.hpp:504, from /usr/include/glm/ext/vector_bool4.hpp:5, from /usr/include/glm/vec4.hpp:5, from /usr/include/glm/glm.hpp:118, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_vec4.inl:870:55: note: candidate: ‘template constexpr glm::vec<4, T, Q> glm::operator*(const glm::vec<4, T, Q>&, const glm::vec<1, T, Q>&)’ 870 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<4, T, Q> operator*(vec<4, T, Q> const& v1, vec<1, T, Q> const& v2) | ^~~~~~~~ /usr/include/glm/detail/type_vec4.inl:870:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: template argument ‘3’ does not match ‘4’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_vec4.hpp:504, from /usr/include/glm/ext/vector_bool4.hpp:5, from /usr/include/glm/vec4.hpp:5, from /usr/include/glm/glm.hpp:118, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_vec4.inl:876:55: note: candidate: ‘template constexpr glm::vec<4, T, Q> glm::operator*(T, const glm::vec<4, T, Q>&)’ 876 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<4, T, Q> operator*(T scalar, vec<4, T, Q> const& v) | ^~~~~~~~ /usr/include/glm/detail/type_vec4.inl:876:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::vec<4, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_vec4.hpp:504, from /usr/include/glm/ext/vector_bool4.hpp:5, from /usr/include/glm/vec4.hpp:5, from /usr/include/glm/glm.hpp:118, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_vec4.inl:882:55: note: candidate: ‘template constexpr glm::vec<4, T, Q> glm::operator*(const glm::vec<1, T, Q>&, const glm::vec<4, T, Q>&)’ 882 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<4, T, Q> operator*(vec<1, T, Q> const& v1, vec<4, T, Q> const& v2) | ^~~~~~~~ /usr/include/glm/detail/type_vec4.inl:882:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: template argument ‘3’ does not match ‘1’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_vec4.hpp:504, from /usr/include/glm/ext/vector_bool4.hpp:5, from /usr/include/glm/vec4.hpp:5, from /usr/include/glm/glm.hpp:118, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_vec4.inl:888:55: note: candidate: ‘template constexpr glm::vec<4, T, Q> glm::operator*(const glm::vec<4, T, Q>&, const glm::vec<4, T, Q>&)’ 888 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<4, T, Q> operator*(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2) | ^~~~~~~~ /usr/include/glm/detail/type_vec4.inl:888:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: template argument ‘3’ does not match ‘4’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x2.inl:413:44: note: candidate: ‘template glm::mat<2, 2, T, Q> glm::operator*(const glm::mat<2, 2, T, Q>&, T)’ 413 | GLM_FUNC_QUALIFIER mat<2, 2, T, Q> operator*(mat<2, 2, T, Q> const& m, T scalar) | ^~~~~~~~ /usr/include/glm/detail/type_mat2x2.inl:413:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<2, 2, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x2.inl:421:44: note: candidate: ‘template glm::mat<2, 2, T, Q> glm::operator*(T, const glm::mat<2, 2, T, Q>&)’ 421 | GLM_FUNC_QUALIFIER mat<2, 2, T, Q> operator*(T scalar, mat<2, 2, T, Q> const& m) | ^~~~~~~~ /usr/include/glm/detail/type_mat2x2.inl:421:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::mat<2, 2, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x2.inl:429:63: note: candidate: ‘template typename glm::mat<2, 2, T, Q>::col_type glm::operator*(const glm::mat<2, 2, T, Q>&, const typename glm::mat<2, 2, T, Q>::row_type&)’ 429 | GLM_FUNC_QUALIFIER typename mat<2, 2, T, Q>::col_type operator* | ^~~~~~~~ /usr/include/glm/detail/type_mat2x2.inl:429:63: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<2, 2, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x2.inl:441:63: note: candidate: ‘template typename glm::mat<2, 2, T, Q>::row_type glm::operator*(const typename glm::mat<2, 2, T, Q>::col_type&, const glm::mat<2, 2, T, Q>&)’ 441 | GLM_FUNC_QUALIFIER typename mat<2, 2, T, Q>::row_type operator* | ^~~~~~~~ /usr/include/glm/detail/type_mat2x2.inl:441:63: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::mat<2, 2, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x2.inl:453:44: note: candidate: ‘template glm::mat<2, 2, T, Q> glm::operator*(const glm::mat<2, 2, T, Q>&, const glm::mat<2, 2, T, Q>&)’ 453 | GLM_FUNC_QUALIFIER mat<2, 2, T, Q> operator*(mat<2, 2, T, Q> const& m1, mat<2, 2, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat2x2.inl:453:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<2, 2, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x2.inl:463:44: note: candidate: ‘template glm::mat<3, 2, T, Q> glm::operator*(const glm::mat<2, 2, T, Q>&, const glm::mat<3, 2, T, Q>&)’ 463 | GLM_FUNC_QUALIFIER mat<3, 2, T, Q> operator*(mat<2, 2, T, Q> const& m1, mat<3, 2, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat2x2.inl:463:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<2, 2, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x2.inl:475:44: note: candidate: ‘template glm::mat<4, 2, T, Q> glm::operator*(const glm::mat<2, 2, T, Q>&, const glm::mat<4, 2, T, Q>&)’ 475 | GLM_FUNC_QUALIFIER mat<4, 2, T, Q> operator*(mat<2, 2, T, Q> const& m1, mat<4, 2, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat2x2.inl:475:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<2, 2, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x3.hpp:158, from /usr/include/glm/ext/matrix_double2x3.hpp:5, from /usr/include/glm/mat2x3.hpp:5, from /usr/include/glm/matrix.hpp:22, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x3.inl:383:44: note: candidate: ‘template glm::mat<2, 3, T, Q> glm::operator*(const glm::mat<2, 3, T, Q>&, T)’ 383 | GLM_FUNC_QUALIFIER mat<2, 3, T, Q> operator*(mat<2, 3, T, Q> const& m, T scalar) | ^~~~~~~~ /usr/include/glm/detail/type_mat2x3.inl:383:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<2, 3, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x3.hpp:158, from /usr/include/glm/ext/matrix_double2x3.hpp:5, from /usr/include/glm/mat2x3.hpp:5, from /usr/include/glm/matrix.hpp:22, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x3.inl:391:44: note: candidate: ‘template glm::mat<2, 3, T, Q> glm::operator*(T, const glm::mat<2, 3, T, Q>&)’ 391 | GLM_FUNC_QUALIFIER mat<2, 3, T, Q> operator*(T scalar, mat<2, 3, T, Q> const& m) | ^~~~~~~~ /usr/include/glm/detail/type_mat2x3.inl:391:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::mat<2, 3, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x3.hpp:158, from /usr/include/glm/ext/matrix_double2x3.hpp:5, from /usr/include/glm/mat2x3.hpp:5, from /usr/include/glm/matrix.hpp:22, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x3.inl:399:63: note: candidate: ‘template typename glm::mat<2, 3, T, Q>::col_type glm::operator*(const glm::mat<2, 3, T, Q>&, const typename glm::mat<2, 3, T, Q>::row_type&)’ 399 | GLM_FUNC_QUALIFIER typename mat<2, 3, T, Q>::col_type operator* | ^~~~~~~~ /usr/include/glm/detail/type_mat2x3.inl:399:63: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<2, 3, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x3.hpp:158, from /usr/include/glm/ext/matrix_double2x3.hpp:5, from /usr/include/glm/mat2x3.hpp:5, from /usr/include/glm/matrix.hpp:22, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x3.inl:411:63: note: candidate: ‘template typename glm::mat<2, 3, T, Q>::row_type glm::operator*(const typename glm::mat<2, 3, T, Q>::col_type&, const glm::mat<2, 3, T, Q>&)’ 411 | GLM_FUNC_QUALIFIER typename mat<2, 3, T, Q>::row_type operator* | ^~~~~~~~ /usr/include/glm/detail/type_mat2x3.inl:411:63: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::mat<2, 3, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x3.hpp:158, from /usr/include/glm/ext/matrix_double2x3.hpp:5, from /usr/include/glm/mat2x3.hpp:5, from /usr/include/glm/matrix.hpp:22, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x3.inl:422:44: note: candidate: ‘template glm::mat<2, 3, T, Q> glm::operator*(const glm::mat<2, 3, T, Q>&, const glm::mat<2, 2, T, Q>&)’ 422 | GLM_FUNC_QUALIFIER mat<2, 3, T, Q> operator*(mat<2, 3, T, Q> const& m1, mat<2, 2, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat2x3.inl:422:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<2, 3, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x3.hpp:158, from /usr/include/glm/ext/matrix_double2x3.hpp:5, from /usr/include/glm/mat2x3.hpp:5, from /usr/include/glm/matrix.hpp:22, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x3.inl:434:44: note: candidate: ‘template glm::mat<3, 3, T, Q> glm::operator*(const glm::mat<2, 3, T, Q>&, const glm::mat<3, 2, T, Q>&)’ 434 | GLM_FUNC_QUALIFIER mat<3, 3, T, Q> operator*(mat<2, 3, T, Q> const& m1, mat<3, 2, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat2x3.inl:434:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<2, 3, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x3.hpp:158, from /usr/include/glm/ext/matrix_double2x3.hpp:5, from /usr/include/glm/mat2x3.hpp:5, from /usr/include/glm/matrix.hpp:22, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x3.inl:464:44: note: candidate: ‘template glm::mat<4, 3, T, Q> glm::operator*(const glm::mat<2, 3, T, Q>&, const glm::mat<4, 2, T, Q>&)’ 464 | GLM_FUNC_QUALIFIER mat<4, 3, T, Q> operator*(mat<2, 3, T, Q> const& m1, mat<4, 2, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat2x3.inl:464:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<2, 3, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x4.hpp:160, from /usr/include/glm/ext/matrix_double2x4.hpp:5, from /usr/include/glm/mat2x4.hpp:5, from /usr/include/glm/matrix.hpp:23, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x4.inl:385:44: note: candidate: ‘template glm::mat<2, 4, T, Q> glm::operator*(const glm::mat<2, 4, T, Q>&, T)’ 385 | GLM_FUNC_QUALIFIER mat<2, 4, T, Q> operator*(mat<2, 4, T, Q> const& m, T scalar) | ^~~~~~~~ /usr/include/glm/detail/type_mat2x4.inl:385:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<2, 4, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x4.hpp:160, from /usr/include/glm/ext/matrix_double2x4.hpp:5, from /usr/include/glm/mat2x4.hpp:5, from /usr/include/glm/matrix.hpp:23, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x4.inl:393:44: note: candidate: ‘template glm::mat<2, 4, T, Q> glm::operator*(T, const glm::mat<2, 4, T, Q>&)’ 393 | GLM_FUNC_QUALIFIER mat<2, 4, T, Q> operator*(T scalar, mat<2, 4, T, Q> const& m) | ^~~~~~~~ /usr/include/glm/detail/type_mat2x4.inl:393:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::mat<2, 4, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x4.hpp:160, from /usr/include/glm/ext/matrix_double2x4.hpp:5, from /usr/include/glm/mat2x4.hpp:5, from /usr/include/glm/matrix.hpp:23, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x4.inl:401:63: note: candidate: ‘template typename glm::mat<2, 4, T, Q>::col_type glm::operator*(const glm::mat<2, 4, T, Q>&, const typename glm::mat<2, 4, T, Q>::row_type&)’ 401 | GLM_FUNC_QUALIFIER typename mat<2, 4, T, Q>::col_type operator*(mat<2, 4, T, Q> const& m, typename mat<2, 4, T, Q>::row_type const& v) | ^~~~~~~~ /usr/include/glm/detail/type_mat2x4.inl:401:63: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<2, 4, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x4.hpp:160, from /usr/include/glm/ext/matrix_double2x4.hpp:5, from /usr/include/glm/mat2x4.hpp:5, from /usr/include/glm/matrix.hpp:23, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x4.inl:411:63: note: candidate: ‘template typename glm::mat<2, 4, T, Q>::row_type glm::operator*(const typename glm::mat<2, 4, T, Q>::col_type&, const glm::mat<2, 4, T, Q>&)’ 411 | GLM_FUNC_QUALIFIER typename mat<2, 4, T, Q>::row_type operator*(typename mat<2, 4, T, Q>::col_type const& v, mat<2, 4, T, Q> const& m) | ^~~~~~~~ /usr/include/glm/detail/type_mat2x4.inl:411:63: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::mat<2, 4, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x4.hpp:160, from /usr/include/glm/ext/matrix_double2x4.hpp:5, from /usr/include/glm/mat2x4.hpp:5, from /usr/include/glm/matrix.hpp:23, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x4.inl:419:44: note: candidate: ‘template glm::mat<4, 4, T, Q> glm::operator*(const glm::mat<2, 4, T, Q>&, const glm::mat<4, 2, T, Q>&)’ 419 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> operator*(mat<2, 4, T, Q> const& m1, mat<4, 2, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat2x4.inl:419:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<2, 4, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x4.hpp:160, from /usr/include/glm/ext/matrix_double2x4.hpp:5, from /usr/include/glm/mat2x4.hpp:5, from /usr/include/glm/matrix.hpp:23, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x4.inl:460:44: note: candidate: ‘template glm::mat<2, 4, T, Q> glm::operator*(const glm::mat<2, 4, T, Q>&, const glm::mat<2, 2, T, Q>&)’ 460 | GLM_FUNC_QUALIFIER mat<2, 4, T, Q> operator*(mat<2, 4, T, Q> const& m1, mat<2, 2, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat2x4.inl:460:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<2, 4, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat2x4.hpp:160, from /usr/include/glm/ext/matrix_double2x4.hpp:5, from /usr/include/glm/mat2x4.hpp:5, from /usr/include/glm/matrix.hpp:23, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat2x4.inl:474:44: note: candidate: ‘template glm::mat<3, 4, T, Q> glm::operator*(const glm::mat<2, 4, T, Q>&, const glm::mat<3, 2, T, Q>&)’ 474 | GLM_FUNC_QUALIFIER mat<3, 4, T, Q> operator*(mat<2, 4, T, Q> const& m1, mat<3, 2, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat2x4.inl:474:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<2, 4, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x2.hpp:166, from /usr/include/glm/ext/matrix_double3x2.hpp:5, from /usr/include/glm/mat3x2.hpp:5, from /usr/include/glm/matrix.hpp:24, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x2.inl:416:44: note: candidate: ‘template glm::mat<3, 2, T, Q> glm::operator*(const glm::mat<3, 2, T, Q>&, T)’ 416 | GLM_FUNC_QUALIFIER mat<3, 2, T, Q> operator*(mat<3, 2, T, Q> const& m, T scalar) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x2.inl:416:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<3, 2, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x2.hpp:166, from /usr/include/glm/ext/matrix_double3x2.hpp:5, from /usr/include/glm/mat3x2.hpp:5, from /usr/include/glm/matrix.hpp:24, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x2.inl:425:44: note: candidate: ‘template glm::mat<3, 2, T, Q> glm::operator*(T, const glm::mat<3, 2, T, Q>&)’ 425 | GLM_FUNC_QUALIFIER mat<3, 2, T, Q> operator*(T scalar, mat<3, 2, T, Q> const& m) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x2.inl:425:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::mat<3, 2, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x2.hpp:166, from /usr/include/glm/ext/matrix_double3x2.hpp:5, from /usr/include/glm/mat3x2.hpp:5, from /usr/include/glm/matrix.hpp:24, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x2.inl:434:63: note: candidate: ‘template typename glm::mat<3, 2, T, Q>::col_type glm::operator*(const glm::mat<3, 2, T, Q>&, const typename glm::mat<3, 2, T, Q>::row_type&)’ 434 | GLM_FUNC_QUALIFIER typename mat<3, 2, T, Q>::col_type operator*(mat<3, 2, T, Q> const& m, typename mat<3, 2, T, Q>::row_type const& v) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x2.inl:434:63: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<3, 2, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x2.hpp:166, from /usr/include/glm/ext/matrix_double3x2.hpp:5, from /usr/include/glm/mat3x2.hpp:5, from /usr/include/glm/matrix.hpp:24, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x2.inl:442:63: note: candidate: ‘template typename glm::mat<3, 2, T, Q>::row_type glm::operator*(const typename glm::mat<3, 2, T, Q>::col_type&, const glm::mat<3, 2, T, Q>&)’ 442 | GLM_FUNC_QUALIFIER typename mat<3, 2, T, Q>::row_type operator*(typename mat<3, 2, T, Q>::col_type const& v, mat<3, 2, T, Q> const& m) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x2.inl:442:63: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::mat<3, 2, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x2.hpp:166, from /usr/include/glm/ext/matrix_double3x2.hpp:5, from /usr/include/glm/mat3x2.hpp:5, from /usr/include/glm/matrix.hpp:24, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x2.inl:451:44: note: candidate: ‘template glm::mat<2, 2, T, Q> glm::operator*(const glm::mat<3, 2, T, Q>&, const glm::mat<2, 3, T, Q>&)’ 451 | GLM_FUNC_QUALIFIER mat<2, 2, T, Q> operator*(mat<3, 2, T, Q> const& m1, mat<2, 3, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x2.inl:451:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<3, 2, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x2.hpp:166, from /usr/include/glm/ext/matrix_double3x2.hpp:5, from /usr/include/glm/mat3x2.hpp:5, from /usr/include/glm/matrix.hpp:24, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x2.inl:476:44: note: candidate: ‘template glm::mat<3, 2, T, Q> glm::operator*(const glm::mat<3, 2, T, Q>&, const glm::mat<3, 3, T, Q>&)’ 476 | GLM_FUNC_QUALIFIER mat<3, 2, T, Q> operator*(mat<3, 2, T, Q> const& m1, mat<3, 3, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x2.inl:476:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<3, 2, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x2.hpp:166, from /usr/include/glm/ext/matrix_double3x2.hpp:5, from /usr/include/glm/mat3x2.hpp:5, from /usr/include/glm/matrix.hpp:24, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x2.inl:488:44: note: candidate: ‘template glm::mat<4, 2, T, Q> glm::operator*(const glm::mat<3, 2, T, Q>&, const glm::mat<4, 3, T, Q>&)’ 488 | GLM_FUNC_QUALIFIER mat<4, 2, T, Q> operator*(mat<3, 2, T, Q> const& m1, mat<4, 3, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x2.inl:488:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<3, 2, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x3.hpp:183, from /usr/include/glm/ext/matrix_double3x3.hpp:5, from /usr/include/glm/mat3x3.hpp:5, from /usr/include/glm/matrix.hpp:25, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x3.inl:450:44: note: candidate: ‘template glm::mat<3, 3, T, Q> glm::operator*(const glm::mat<3, 3, T, Q>&, T)’ 450 | GLM_FUNC_QUALIFIER mat<3, 3, T, Q> operator*(mat<3, 3, T, Q> const& m, T scalar) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x3.inl:450:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<3, 3, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x3.hpp:183, from /usr/include/glm/ext/matrix_double3x3.hpp:5, from /usr/include/glm/mat3x3.hpp:5, from /usr/include/glm/matrix.hpp:25, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x3.inl:459:44: note: candidate: ‘template glm::mat<3, 3, T, Q> glm::operator*(T, const glm::mat<3, 3, T, Q>&)’ 459 | GLM_FUNC_QUALIFIER mat<3, 3, T, Q> operator*(T scalar, mat<3, 3, T, Q> const& m) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x3.inl:459:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::mat<3, 3, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x3.hpp:183, from /usr/include/glm/ext/matrix_double3x3.hpp:5, from /usr/include/glm/mat3x3.hpp:5, from /usr/include/glm/matrix.hpp:25, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x3.inl:468:63: note: candidate: ‘template typename glm::mat<3, 3, T, Q>::col_type glm::operator*(const glm::mat<3, 3, T, Q>&, const typename glm::mat<3, 3, T, Q>::row_type&)’ 468 | GLM_FUNC_QUALIFIER typename mat<3, 3, T, Q>::col_type operator*(mat<3, 3, T, Q> const& m, typename mat<3, 3, T, Q>::row_type const& v) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x3.inl:468:63: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<3, 3, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x3.hpp:183, from /usr/include/glm/ext/matrix_double3x3.hpp:5, from /usr/include/glm/mat3x3.hpp:5, from /usr/include/glm/matrix.hpp:25, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x3.inl:477:63: note: candidate: ‘template typename glm::mat<3, 3, T, Q>::row_type glm::operator*(const typename glm::mat<3, 3, T, Q>::col_type&, const glm::mat<3, 3, T, Q>&)’ 477 | GLM_FUNC_QUALIFIER typename mat<3, 3, T, Q>::row_type operator*(typename mat<3, 3, T, Q>::col_type const& v, mat<3, 3, T, Q> const& m) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x3.inl:477:63: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::mat<3, 3, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x3.hpp:183, from /usr/include/glm/ext/matrix_double3x3.hpp:5, from /usr/include/glm/mat3x3.hpp:5, from /usr/include/glm/matrix.hpp:25, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x3.inl:486:44: note: candidate: ‘template glm::mat<3, 3, T, Q> glm::operator*(const glm::mat<3, 3, T, Q>&, const glm::mat<3, 3, T, Q>&)’ 486 | GLM_FUNC_QUALIFIER mat<3, 3, T, Q> operator*(mat<3, 3, T, Q> const& m1, mat<3, 3, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x3.inl:486:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<3, 3, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x3.hpp:183, from /usr/include/glm/ext/matrix_double3x3.hpp:5, from /usr/include/glm/mat3x3.hpp:5, from /usr/include/glm/matrix.hpp:25, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x3.inl:522:44: note: candidate: ‘template glm::mat<2, 3, T, Q> glm::operator*(const glm::mat<3, 3, T, Q>&, const glm::mat<2, 3, T, Q>&)’ 522 | GLM_FUNC_QUALIFIER mat<2, 3, T, Q> operator*(mat<3, 3, T, Q> const& m1, mat<2, 3, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x3.inl:522:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<3, 3, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x3.hpp:183, from /usr/include/glm/ext/matrix_double3x3.hpp:5, from /usr/include/glm/mat3x3.hpp:5, from /usr/include/glm/matrix.hpp:25, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x3.inl:534:44: note: candidate: ‘template glm::mat<4, 3, T, Q> glm::operator*(const glm::mat<3, 3, T, Q>&, const glm::mat<4, 3, T, Q>&)’ 534 | GLM_FUNC_QUALIFIER mat<4, 3, T, Q> operator*(mat<3, 3, T, Q> const& m1, mat<4, 3, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x3.inl:534:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<3, 3, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x4.hpp:165, from /usr/include/glm/ext/matrix_double3x4.hpp:5, from /usr/include/glm/mat3x4.hpp:5, from /usr/include/glm/matrix.hpp:26, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x4.inl:422:44: note: candidate: ‘template glm::mat<3, 4, T, Q> glm::operator*(const glm::mat<3, 4, T, Q>&, T)’ 422 | GLM_FUNC_QUALIFIER mat<3, 4, T, Q> operator*(mat<3, 4, T, Q> const& m, T scalar) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x4.inl:422:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<3, 4, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x4.hpp:165, from /usr/include/glm/ext/matrix_double3x4.hpp:5, from /usr/include/glm/mat3x4.hpp:5, from /usr/include/glm/matrix.hpp:26, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x4.inl:431:44: note: candidate: ‘template glm::mat<3, 4, T, Q> glm::operator*(T, const glm::mat<3, 4, T, Q>&)’ 431 | GLM_FUNC_QUALIFIER mat<3, 4, T, Q> operator*(T scalar, mat<3, 4, T, Q> const& m) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x4.inl:431:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::mat<3, 4, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x4.hpp:165, from /usr/include/glm/ext/matrix_double3x4.hpp:5, from /usr/include/glm/mat3x4.hpp:5, from /usr/include/glm/matrix.hpp:26, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x4.inl:440:63: note: candidate: ‘template typename glm::mat<3, 4, T, Q>::col_type glm::operator*(const glm::mat<3, 4, T, Q>&, const typename glm::mat<3, 4, T, Q>::row_type&)’ 440 | GLM_FUNC_QUALIFIER typename mat<3, 4, T, Q>::col_type operator* | ^~~~~~~~ /usr/include/glm/detail/type_mat3x4.inl:440:63: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<3, 4, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x4.hpp:165, from /usr/include/glm/ext/matrix_double3x4.hpp:5, from /usr/include/glm/mat3x4.hpp:5, from /usr/include/glm/matrix.hpp:26, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x4.inl:454:63: note: candidate: ‘template typename glm::mat<3, 4, T, Q>::row_type glm::operator*(const typename glm::mat<3, 4, T, Q>::col_type&, const glm::mat<3, 4, T, Q>&)’ 454 | GLM_FUNC_QUALIFIER typename mat<3, 4, T, Q>::row_type operator* | ^~~~~~~~ /usr/include/glm/detail/type_mat3x4.inl:454:63: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::mat<3, 4, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x4.hpp:165, from /usr/include/glm/ext/matrix_double3x4.hpp:5, from /usr/include/glm/mat3x4.hpp:5, from /usr/include/glm/matrix.hpp:26, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x4.inl:467:44: note: candidate: ‘template glm::mat<4, 4, T, Q> glm::operator*(const glm::mat<3, 4, T, Q>&, const glm::mat<4, 3, T, Q>&)’ 467 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> operator*(mat<3, 4, T, Q> const& m1, mat<4, 3, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x4.inl:467:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<3, 4, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x4.hpp:165, from /usr/include/glm/ext/matrix_double3x4.hpp:5, from /usr/include/glm/mat3x4.hpp:5, from /usr/include/glm/matrix.hpp:26, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x4.inl:516:44: note: candidate: ‘template glm::mat<2, 4, T, Q> glm::operator*(const glm::mat<3, 4, T, Q>&, const glm::mat<2, 3, T, Q>&)’ 516 | GLM_FUNC_QUALIFIER mat<2, 4, T, Q> operator*(mat<3, 4, T, Q> const& m1, mat<2, 3, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x4.inl:516:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<3, 4, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat3x4.hpp:165, from /usr/include/glm/ext/matrix_double3x4.hpp:5, from /usr/include/glm/mat3x4.hpp:5, from /usr/include/glm/matrix.hpp:26, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat3x4.inl:530:44: note: candidate: ‘template glm::mat<3, 4, T, Q> glm::operator*(const glm::mat<3, 4, T, Q>&, const glm::mat<3, 3, T, Q>&)’ 530 | GLM_FUNC_QUALIFIER mat<3, 4, T, Q> operator*(mat<3, 4, T, Q> const& m1, mat<3, 3, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat3x4.inl:530:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<3, 4, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x2.hpp:170, from /usr/include/glm/ext/matrix_double4x2.hpp:5, from /usr/include/glm/mat4x2.hpp:5, from /usr/include/glm/matrix.hpp:27, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x2.inl:449:44: note: candidate: ‘template glm::mat<4, 2, T, Q> glm::operator*(const glm::mat<4, 2, T, Q>&, T)’ 449 | GLM_FUNC_QUALIFIER mat<4, 2, T, Q> operator*(mat<4, 2, T, Q> const& m, T scalar) | ^~~~~~~~ /usr/include/glm/detail/type_mat4x2.inl:449:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<4, 2, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x2.hpp:170, from /usr/include/glm/ext/matrix_double4x2.hpp:5, from /usr/include/glm/mat4x2.hpp:5, from /usr/include/glm/matrix.hpp:27, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x2.inl:459:44: note: candidate: ‘template glm::mat<4, 2, T, Q> glm::operator*(T, const glm::mat<4, 2, T, Q>&)’ 459 | GLM_FUNC_QUALIFIER mat<4, 2, T, Q> operator*(T scalar, mat<4, 2, T, Q> const& m) | ^~~~~~~~ /usr/include/glm/detail/type_mat4x2.inl:459:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::mat<4, 2, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x2.hpp:170, from /usr/include/glm/ext/matrix_double4x2.hpp:5, from /usr/include/glm/mat4x2.hpp:5, from /usr/include/glm/matrix.hpp:27, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x2.inl:469:63: note: candidate: ‘template typename glm::mat<4, 2, T, Q>::col_type glm::operator*(const glm::mat<4, 2, T, Q>&, const typename glm::mat<4, 2, T, Q>::row_type&)’ 469 | GLM_FUNC_QUALIFIER typename mat<4, 2, T, Q>::col_type operator*(mat<4, 2, T, Q> const& m, typename mat<4, 2, T, Q>::row_type const& v) | ^~~~~~~~ /usr/include/glm/detail/type_mat4x2.inl:469:63: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<4, 2, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x2.hpp:170, from /usr/include/glm/ext/matrix_double4x2.hpp:5, from /usr/include/glm/mat4x2.hpp:5, from /usr/include/glm/matrix.hpp:27, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x2.inl:477:63: note: candidate: ‘template typename glm::mat<4, 2, T, Q>::row_type glm::operator*(const typename glm::mat<4, 2, T, Q>::col_type&, const glm::mat<4, 2, T, Q>&)’ 477 | GLM_FUNC_QUALIFIER typename mat<4, 2, T, Q>::row_type operator*(typename mat<4, 2, T, Q>::col_type const& v, mat<4, 2, T, Q> const& m) | ^~~~~~~~ /usr/include/glm/detail/type_mat4x2.inl:477:63: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::mat<4, 2, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x2.hpp:170, from /usr/include/glm/ext/matrix_double4x2.hpp:5, from /usr/include/glm/mat4x2.hpp:5, from /usr/include/glm/matrix.hpp:27, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x2.inl:487:44: note: candidate: ‘template glm::mat<2, 2, T, Q> glm::operator*(const glm::mat<4, 2, T, Q>&, const glm::mat<2, 4, T, Q>&)’ 487 | GLM_FUNC_QUALIFIER mat<2, 2, T, Q> operator*(mat<4, 2, T, Q> const& m1, mat<2, 4, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat4x2.inl:487:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<4, 2, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x2.hpp:170, from /usr/include/glm/ext/matrix_double4x2.hpp:5, from /usr/include/glm/mat4x2.hpp:5, from /usr/include/glm/matrix.hpp:27, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x2.inl:516:44: note: candidate: ‘template glm::mat<3, 2, T, Q> glm::operator*(const glm::mat<4, 2, T, Q>&, const glm::mat<3, 4, T, Q>&)’ 516 | GLM_FUNC_QUALIFIER mat<3, 2, T, Q> operator*(mat<4, 2, T, Q> const& m1, mat<3, 4, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat4x2.inl:516:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<4, 2, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x2.hpp:170, from /usr/include/glm/ext/matrix_double4x2.hpp:5, from /usr/include/glm/mat4x2.hpp:5, from /usr/include/glm/matrix.hpp:27, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x2.inl:528:44: note: candidate: ‘template glm::mat<4, 2, T, Q> glm::operator*(const glm::mat<4, 2, T, Q>&, const glm::mat<4, 4, T, Q>&)’ 528 | GLM_FUNC_QUALIFIER mat<4, 2, T, Q> operator*(mat<4, 2, T, Q> const& m1, mat<4, 4, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat4x2.inl:528:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<4, 2, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x3.hpp:170, from /usr/include/glm/ext/matrix_double4x3.hpp:5, from /usr/include/glm/mat4x3.hpp:5, from /usr/include/glm/matrix.hpp:28, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x3.inl:449:44: note: candidate: ‘template glm::mat<4, 3, T, Q> glm::operator*(const glm::mat<4, 3, T, Q>&, const T&)’ 449 | GLM_FUNC_QUALIFIER mat<4, 3, T, Q> operator*(mat<4, 3, T, Q> const& m, T const& s) | ^~~~~~~~ /usr/include/glm/detail/type_mat4x3.inl:449:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<4, 3, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x3.hpp:170, from /usr/include/glm/ext/matrix_double4x3.hpp:5, from /usr/include/glm/mat4x3.hpp:5, from /usr/include/glm/matrix.hpp:28, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x3.inl:459:44: note: candidate: ‘template glm::mat<4, 3, T, Q> glm::operator*(const T&, const glm::mat<4, 3, T, Q>&)’ 459 | GLM_FUNC_QUALIFIER mat<4, 3, T, Q> operator*(T const& s, mat<4, 3, T, Q> const& m) | ^~~~~~~~ /usr/include/glm/detail/type_mat4x3.inl:459:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::mat<4, 3, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x3.hpp:170, from /usr/include/glm/ext/matrix_double4x3.hpp:5, from /usr/include/glm/mat4x3.hpp:5, from /usr/include/glm/matrix.hpp:28, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x3.inl:469:63: note: candidate: ‘template typename glm::mat<4, 3, T, Q>::col_type glm::operator*(const glm::mat<4, 3, T, Q>&, const typename glm::mat<4, 3, T, Q>::row_type&)’ 469 | GLM_FUNC_QUALIFIER typename mat<4, 3, T, Q>::col_type operator* | ^~~~~~~~ /usr/include/glm/detail/type_mat4x3.inl:469:63: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<4, 3, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x3.hpp:170, from /usr/include/glm/ext/matrix_double4x3.hpp:5, from /usr/include/glm/mat4x3.hpp:5, from /usr/include/glm/matrix.hpp:28, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x3.inl:481:63: note: candidate: ‘template typename glm::mat<4, 3, T, Q>::row_type glm::operator*(const typename glm::mat<4, 3, T, Q>::col_type&, const glm::mat<4, 3, T, Q>&)’ 481 | GLM_FUNC_QUALIFIER typename mat<4, 3, T, Q>::row_type operator* | ^~~~~~~~ /usr/include/glm/detail/type_mat4x3.inl:481:63: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::mat<4, 3, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x3.hpp:170, from /usr/include/glm/ext/matrix_double4x3.hpp:5, from /usr/include/glm/mat4x3.hpp:5, from /usr/include/glm/matrix.hpp:28, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x3.inl:494:44: note: candidate: ‘template glm::mat<2, 3, T, Q> glm::operator*(const glm::mat<4, 3, T, Q>&, const glm::mat<2, 4, T, Q>&)’ 494 | GLM_FUNC_QUALIFIER mat<2, 3, T, Q> operator*(mat<4, 3, T, Q> const& m1, mat<2, 4, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat4x3.inl:494:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<4, 3, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x3.hpp:170, from /usr/include/glm/ext/matrix_double4x3.hpp:5, from /usr/include/glm/mat4x3.hpp:5, from /usr/include/glm/matrix.hpp:28, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x3.inl:506:44: note: candidate: ‘template glm::mat<3, 3, T, Q> glm::operator*(const glm::mat<4, 3, T, Q>&, const glm::mat<3, 4, T, Q>&)’ 506 | GLM_FUNC_QUALIFIER mat<3, 3, T, Q> operator*(mat<4, 3, T, Q> const& m1, mat<3, 4, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat4x3.inl:506:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<4, 3, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x3.hpp:170, from /usr/include/glm/ext/matrix_double4x3.hpp:5, from /usr/include/glm/mat4x3.hpp:5, from /usr/include/glm/matrix.hpp:28, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x3.inl:548:44: note: candidate: ‘template glm::mat<4, 3, T, Q> glm::operator*(const glm::mat<4, 3, T, Q>&, const glm::mat<4, 4, T, Q>&)’ 548 | GLM_FUNC_QUALIFIER mat<4, 3, T, Q> operator*(mat<4, 3, T, Q> const& m1, mat<4, 4, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat4x3.inl:548:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<4, 3, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x4.hpp:188, from /usr/include/glm/ext/matrix_double4x4.hpp:5, from /usr/include/glm/mat4x4.hpp:5, from /usr/include/glm/matrix.hpp:29, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x4.inl:516:44: note: candidate: ‘template glm::mat<4, 4, T, Q> glm::operator*(const glm::mat<4, 4, T, Q>&, const T&)’ 516 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> operator*(mat<4, 4, T, Q> const& m, T const & s) | ^~~~~~~~ /usr/include/glm/detail/type_mat4x4.inl:516:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<4, 4, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x4.hpp:188, from /usr/include/glm/ext/matrix_double4x4.hpp:5, from /usr/include/glm/mat4x4.hpp:5, from /usr/include/glm/matrix.hpp:29, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x4.inl:526:44: note: candidate: ‘template glm::mat<4, 4, T, Q> glm::operator*(const T&, const glm::mat<4, 4, T, Q>&)’ 526 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> operator*(T const& s, mat<4, 4, T, Q> const& m) | ^~~~~~~~ /usr/include/glm/detail/type_mat4x4.inl:526:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::mat<4, 4, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x4.hpp:188, from /usr/include/glm/ext/matrix_double4x4.hpp:5, from /usr/include/glm/mat4x4.hpp:5, from /usr/include/glm/matrix.hpp:29, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x4.inl:536:63: note: candidate: ‘template typename glm::mat<4, 4, T, Q>::col_type glm::operator*(const glm::mat<4, 4, T, Q>&, const typename glm::mat<4, 4, T, Q>::row_type&)’ 536 | GLM_FUNC_QUALIFIER typename mat<4, 4, T, Q>::col_type operator* | ^~~~~~~~ /usr/include/glm/detail/type_mat4x4.inl:536:63: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<4, 4, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x4.hpp:188, from /usr/include/glm/ext/matrix_double4x4.hpp:5, from /usr/include/glm/mat4x4.hpp:5, from /usr/include/glm/matrix.hpp:29, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x4.inl:584:63: note: candidate: ‘template typename glm::mat<4, 4, T, Q>::row_type glm::operator*(const typename glm::mat<4, 4, T, Q>::col_type&, const glm::mat<4, 4, T, Q>&)’ 584 | GLM_FUNC_QUALIFIER typename mat<4, 4, T, Q>::row_type operator* | ^~~~~~~~ /usr/include/glm/detail/type_mat4x4.inl:584:63: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::mat<4, 4, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x4.hpp:188, from /usr/include/glm/ext/matrix_double4x4.hpp:5, from /usr/include/glm/mat4x4.hpp:5, from /usr/include/glm/matrix.hpp:29, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x4.inl:598:44: note: candidate: ‘template glm::mat<2, 4, T, Q> glm::operator*(const glm::mat<4, 4, T, Q>&, const glm::mat<2, 4, T, Q>&)’ 598 | GLM_FUNC_QUALIFIER mat<2, 4, T, Q> operator*(mat<4, 4, T, Q> const& m1, mat<2, 4, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat4x4.inl:598:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<4, 4, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x4.hpp:188, from /usr/include/glm/ext/matrix_double4x4.hpp:5, from /usr/include/glm/mat4x4.hpp:5, from /usr/include/glm/matrix.hpp:29, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x4.inl:612:44: note: candidate: ‘template glm::mat<3, 4, T, Q> glm::operator*(const glm::mat<4, 4, T, Q>&, const glm::mat<3, 4, T, Q>&)’ 612 | GLM_FUNC_QUALIFIER mat<3, 4, T, Q> operator*(mat<4, 4, T, Q> const& m1, mat<3, 4, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat4x4.inl:612:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<4, 4, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_mat4x4.hpp:188, from /usr/include/glm/ext/matrix_double4x4.hpp:5, from /usr/include/glm/mat4x4.hpp:5, from /usr/include/glm/matrix.hpp:29, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_mat4x4.inl:630:44: note: candidate: ‘template glm::mat<4, 4, T, Q> glm::operator*(const glm::mat<4, 4, T, Q>&, const glm::mat<4, 4, T, Q>&)’ 630 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> operator*(mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2) | ^~~~~~~~ /usr/include/glm/detail/type_mat4x4.inl:630:44: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::mat<4, 4, T, Q>’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_vec1.hpp:307, from /usr/include/glm/exponential.hpp:17, from /usr/include/glm/detail/func_geometric.inl:1, from /usr/include/glm/geometric.hpp:116, from /usr/include/glm/detail/func_matrix.inl:1, from /usr/include/glm/matrix.hpp:161, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_vec1.inl:350:55: note: candidate: ‘template constexpr glm::vec<1, T, Q> glm::operator*(const glm::vec<1, T, Q>&, T)’ 350 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator*(vec<1, T, Q> const& v, T scalar) | ^~~~~~~~ /usr/include/glm/detail/type_vec1.inl:350:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: template argument ‘3’ does not match ‘1’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_vec1.hpp:307, from /usr/include/glm/exponential.hpp:17, from /usr/include/glm/detail/func_geometric.inl:1, from /usr/include/glm/geometric.hpp:116, from /usr/include/glm/detail/func_matrix.inl:1, from /usr/include/glm/matrix.hpp:161, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_vec1.inl:357:55: note: candidate: ‘template constexpr glm::vec<1, T, Q> glm::operator*(T, const glm::vec<1, T, Q>&)’ 357 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator*(T scalar, vec<1, T, Q> const& v) | ^~~~~~~~ /usr/include/glm/detail/type_vec1.inl:357:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::vec<1, T, Q>’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_vec1.hpp:307, from /usr/include/glm/exponential.hpp:17, from /usr/include/glm/detail/func_geometric.inl:1, from /usr/include/glm/geometric.hpp:116, from /usr/include/glm/detail/func_matrix.inl:1, from /usr/include/glm/matrix.hpp:161, from /usr/include/glm/detail/type_mat2x2.inl:1, from /usr/include/glm/detail/type_mat2x2.hpp:176, from /usr/include/glm/ext/matrix_double2x2.hpp:5, from /usr/include/glm/mat2x2.hpp:5, from /usr/include/glm/glm.hpp:119, from game.h:8, from main.cpp:7: /usr/include/glm/detail/type_vec1.inl:364:55: note: candidate: ‘template constexpr glm::vec<1, T, Q> glm::operator*(const glm::vec<1, T, Q>&, const glm::vec<1, T, Q>&)’ 364 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator*(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2) | ^~~~~~~~ /usr/include/glm/detail/type_vec1.inl:364:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: template argument ‘3’ does not match ‘1’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_quat.hpp:185, from /usr/include/glm/ext/quaternion_float.hpp:23, from /usr/include/glm/gtc/quaternion.hpp:21, from /usr/include/glm/gtc/type_ptr.hpp:37, from game.h:10, from main.cpp:7: /usr/include/glm/detail/type_quat.inl:337:52: note: candidate: ‘template constexpr glm::qua glm::operator*(const glm::qua&, const glm::qua&)’ 337 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua operator*(qua const& q, qua const& p) | ^~~~~~~~ /usr/include/glm/detail/type_quat.inl:337:52: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::qua’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_quat.hpp:185, from /usr/include/glm/ext/quaternion_float.hpp:23, from /usr/include/glm/gtc/quaternion.hpp:21, from /usr/include/glm/gtc/type_ptr.hpp:37, from game.h:10, from main.cpp:7: /usr/include/glm/detail/type_quat.inl:343:55: note: candidate: ‘template constexpr glm::vec<3, T, Q> glm::operator*(const glm::qua&, const glm::vec<3, T, Q>&)’ 343 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator*(qua const& q, vec<3, T, Q> const& v) | ^~~~~~~~ /usr/include/glm/detail/type_quat.inl:343:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::qua’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_quat.hpp:185, from /usr/include/glm/ext/quaternion_float.hpp:23, from /usr/include/glm/gtc/quaternion.hpp:21, from /usr/include/glm/gtc/type_ptr.hpp:37, from game.h:10, from main.cpp:7: /usr/include/glm/detail/type_quat.inl:353:55: note: candidate: ‘template constexpr glm::vec<3, T, Q> glm::operator*(const glm::vec<3, T, Q>&, const glm::qua&)’ 353 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator*(vec<3, T, Q> const& v, qua const& q) | ^~~~~~~~ /usr/include/glm/detail/type_quat.inl:353:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::qua’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_quat.hpp:185, from /usr/include/glm/ext/quaternion_float.hpp:23, from /usr/include/glm/gtc/quaternion.hpp:21, from /usr/include/glm/gtc/type_ptr.hpp:37, from game.h:10, from main.cpp:7: /usr/include/glm/detail/type_quat.inl:359:55: note: candidate: ‘template constexpr glm::vec<4, T, Q> glm::operator*(const glm::qua&, const glm::vec<4, T, Q>&)’ 359 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<4, T, Q> operator*(qua const& q, vec<4, T, Q> const& v) | ^~~~~~~~ /usr/include/glm/detail/type_quat.inl:359:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::qua’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_quat.hpp:185, from /usr/include/glm/ext/quaternion_float.hpp:23, from /usr/include/glm/gtc/quaternion.hpp:21, from /usr/include/glm/gtc/type_ptr.hpp:37, from game.h:10, from main.cpp:7: /usr/include/glm/detail/type_quat.inl:365:55: note: candidate: ‘template constexpr glm::vec<4, T, Q> glm::operator*(const glm::vec<4, T, Q>&, const glm::qua&)’ 365 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<4, T, Q> operator*(vec<4, T, Q> const& v, qua const& q) | ^~~~~~~~ /usr/include/glm/detail/type_quat.inl:365:55: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: template argument ‘3’ does not match ‘4’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_quat.hpp:185, from /usr/include/glm/ext/quaternion_float.hpp:23, from /usr/include/glm/gtc/quaternion.hpp:21, from /usr/include/glm/gtc/type_ptr.hpp:37, from game.h:10, from main.cpp:7: /usr/include/glm/detail/type_quat.inl:371:52: note: candidate: ‘template constexpr glm::qua glm::operator*(const glm::qua&, const T&)’ 371 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua operator*(qua const& q, T const& s) | ^~~~~~~~ /usr/include/glm/detail/type_quat.inl:371:52: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: ‘__gnu_cxx::__alloc_traits >, glm::vec<3, float, glm::packed_highp> >::value_type’ {aka ‘glm::vec<3, float, glm::packed_highp>’} is not derived from ‘const glm::qua’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ In file included from /usr/include/glm/detail/type_quat.hpp:185, from /usr/include/glm/ext/quaternion_float.hpp:23, from /usr/include/glm/gtc/quaternion.hpp:21, from /usr/include/glm/gtc/type_ptr.hpp:37, from game.h:10, from main.cpp:7: /usr/include/glm/detail/type_quat.inl:378:52: note: candidate: ‘template constexpr glm::qua glm::operator*(const T&, const glm::qua&)’ 378 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua operator*(T const& s, qua const& q) | ^~~~~~~~ /usr/include/glm/detail/type_quat.inl:378:52: note: template argument deduction/substitution failed: In file included from main.cpp:10: projectiles.h:87:59: note: mismatched types ‘const glm::qua’ and ‘int’ 87 | locations[i] += trajectories[i] * elapsed_time/1000.0f; | ^~~~~~~~~~~~ make: *** [: main.o] Error 1