/usr/bin/cmake -H/home/john/temp/glm-test -B/home/john/temp/glm-test/build --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /home/john/temp/glm-test/build/CMakeFiles /home/john/temp/glm-test/build/CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[1]: Entering directory '/home/john/temp/glm-test/build' make -f CMakeFiles/glm_test.dir/build.make CMakeFiles/glm_test.dir/depend make[2]: Entering directory '/home/john/temp/glm-test/build' cd /home/john/temp/glm-test/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/john/temp/glm-test /home/john/temp/glm-test /home/john/temp/glm-test/build /home/john/temp/glm-test/build /home/john/temp/glm-test/build/CMakeFiles/glm_test.dir/DependInfo.cmake --color= make[2]: Leaving directory '/home/john/temp/glm-test/build' make -f CMakeFiles/glm_test.dir/build.make CMakeFiles/glm_test.dir/build make[2]: Entering directory '/home/john/temp/glm-test/build' [ 50%] Building CXX object CMakeFiles/glm_test.dir/main.cpp.o /usr/lib/ccache/bin/c++ -std=c++11 -o CMakeFiles/glm_test.dir/main.cpp.o -c /home/john/temp/glm-test/main.cpp In file included from /usr/include/glm/ext/vector_bool2.hpp:5, from /usr/include/glm/vec2.hpp:5, from /usr/include/glm/glm.hpp:116, from /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec2.hpp:90:40: error: ‘constexpr const T& glm::vec<2, T, Q>::operator[](glm::vec<2, T, Q>::length_type) const’ cannot be overloaded with ‘constexpr T& glm::vec<2, T, Q>::operator[](glm::vec<2, T, Q>::length_type) const’ GLM_FUNC_DECL GLM_CONSTEXPR T const& operator[](length_type i) const; ^~~~~~~~ /usr/include/glm/detail/type_vec2.hpp:89:34: note: previous declaration ‘constexpr T& glm::vec<2, T, Q>::operator[](glm::vec<2, T, Q>::length_type) const’ GLM_FUNC_DECL GLM_CONSTEXPR T& operator[](length_type i); ^~~~~~~~ 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 /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec2.inl:118:44: error: no declaration matches ‘constexpr const T& glm::vec<2, T, Q>::operator[](glm::vec<2, T, Q>::length_type) const’ GLM_FUNC_QUALIFIER GLM_CONSTEXPR T const& vec<2, T, Q>::operator[](typename vec<2, T, Q>::length_type i) const ^~~~~~~~~~~~ /usr/include/glm/detail/type_vec2.inl:104:39: note: candidate is: ‘constexpr T& glm::vec<2, T, Q>::operator[](glm::vec<2, T, Q>::length_type) const’ GLM_FUNC_QUALIFIER GLM_CONSTEXPR T & vec<2, T, Q>::operator[](typename vec<2, T, Q>::length_type i) ^~~~~~~~~~~~ In file included from /usr/include/glm/ext/vector_bool2.hpp:5, from /usr/include/glm/vec2.hpp:5, from /usr/include/glm/glm.hpp:116, from /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec2.hpp:17:9: note: ‘struct glm::vec<2, T, Q>’ defined here struct vec<2, T, Q> ^~~~~~~~~~~~ In file included from /usr/include/glm/ext/vector_bool3.hpp:5, from /usr/include/glm/vec3.hpp:5, from /usr/include/glm/glm.hpp:117, from /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec3.hpp:94:40: error: ‘constexpr const T& glm::vec<3, T, Q>::operator[](glm::vec<3, T, Q>::length_type) const’ cannot be overloaded with ‘constexpr T& glm::vec<3, T, Q>::operator[](glm::vec<3, T, Q>::length_type) const’ GLM_FUNC_DECL GLM_CONSTEXPR T const& operator[](length_type i) const; ^~~~~~~~ /usr/include/glm/detail/type_vec3.hpp:93:35: note: previous declaration ‘constexpr T& glm::vec<3, T, Q>::operator[](glm::vec<3, T, Q>::length_type) const’ GLM_FUNC_DECL GLM_CONSTEXPR T & operator[](length_type i); ^~~~~~~~ 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 /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec3.inl:184:44: error: no declaration matches ‘constexpr const T& glm::vec<3, T, Q>::operator[](glm::vec<3, T, Q>::length_type) const’ GLM_FUNC_QUALIFIER GLM_CONSTEXPR T const& vec<3, T, Q>::operator[](typename vec<3, T, Q>::length_type i) const ^~~~~~~~~~~~ /usr/include/glm/detail/type_vec3.inl:168:39: note: candidate is: ‘constexpr T& glm::vec<3, T, Q>::operator[](glm::vec<3, T, Q>::length_type) const’ GLM_FUNC_QUALIFIER GLM_CONSTEXPR T & vec<3, T, Q>::operator[](typename vec<3, T, Q>::length_type i) ^~~~~~~~~~~~ In file included from /usr/include/glm/ext/vector_bool3.hpp:5, from /usr/include/glm/vec3.hpp:5, from /usr/include/glm/glm.hpp:117, from /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec3.hpp:17:9: note: ‘struct glm::vec<3, T, Q>’ defined here struct vec<3, T, Q> ^~~~~~~~~~~~ In file included from /usr/include/glm/ext/vector_bool4.hpp:5, from /usr/include/glm/vec4.hpp:5, from /usr/include/glm/glm.hpp:118, from /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec4.hpp:92:40: error: ‘constexpr const T& glm::vec<4, T, Q>::operator[](glm::vec<4, T, Q>::length_type) const’ cannot be overloaded with ‘constexpr T& glm::vec<4, T, Q>::operator[](glm::vec<4, T, Q>::length_type) const’ GLM_FUNC_DECL GLM_CONSTEXPR T const& operator[](length_type i) const; ^~~~~~~~ /usr/include/glm/detail/type_vec4.hpp:91:35: note: previous declaration ‘constexpr T& glm::vec<4, T, Q>::operator[](glm::vec<4, T, Q>::length_type) const’ GLM_FUNC_DECL GLM_CONSTEXPR T & operator[](length_type i); ^~~~~~~~ In file included from /usr/include/glm/detail/type_vec4.hpp:503, from /usr/include/glm/ext/vector_bool4.hpp:5, from /usr/include/glm/vec4.hpp:5, from /usr/include/glm/glm.hpp:118, from /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec4.inl:495:44: error: no declaration matches ‘constexpr const T& glm::vec<4, T, Q>::operator[](glm::vec<4, T, Q>::length_type) const’ GLM_FUNC_QUALIFIER GLM_CONSTEXPR T const& vec<4, T, Q>::operator[](typename vec<4, T, Q>::length_type i) const ^~~~~~~~~~~~ /usr/include/glm/detail/type_vec4.inl:477:38: note: candidate is: ‘constexpr T& glm::vec<4, T, Q>::operator[](glm::vec<4, T, Q>::length_type) const’ GLM_FUNC_QUALIFIER GLM_CONSTEXPR T& vec<4, T, Q>::operator[](typename vec<4, T, Q>::length_type i) ^~~~~~~~~~~~ In file included from /usr/include/glm/ext/vector_bool4.hpp:5, from /usr/include/glm/vec4.hpp:5, from /usr/include/glm/glm.hpp:118, from /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec4.hpp:17:9: note: ‘struct glm::vec<4, T, Q>’ defined here struct vec<4, T, Q> ^~~~~~~~~~~~ In file included 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 /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec1.hpp:91:40: error: ‘constexpr const T& glm::vec<1, T, Q>::operator[](glm::vec<1, T, Q>::length_type) const’ cannot be overloaded with ‘constexpr T& glm::vec<1, T, Q>::operator[](glm::vec<1, T, Q>::length_type) const’ GLM_FUNC_DECL GLM_CONSTEXPR T const& operator[](length_type i) const; ^~~~~~~~ /usr/include/glm/detail/type_vec1.hpp:90:35: note: previous declaration ‘constexpr T& glm::vec<1, T, Q>::operator[](glm::vec<1, T, Q>::length_type) const’ GLM_FUNC_DECL GLM_CONSTEXPR T & operator[](length_type i); ^~~~~~~~ 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 /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec1.inl:71:44: error: no declaration matches ‘constexpr const T& glm::vec<1, T, Q>::operator[](glm::vec<1, T, Q>::length_type) const’ GLM_FUNC_QUALIFIER GLM_CONSTEXPR T const& vec<1, T, Q>::operator[](typename vec<1, T, Q>::length_type) const ^~~~~~~~~~~~ /usr/include/glm/detail/type_vec1.inl:65:39: note: candidate is: ‘constexpr T& glm::vec<1, T, Q>::operator[](glm::vec<1, T, Q>::length_type) const’ GLM_FUNC_QUALIFIER GLM_CONSTEXPR T & vec<1, T, Q>::operator[](typename vec<1, T, Q>::length_type) ^~~~~~~~~~~~ In file included 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 /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec1.hpp:17:9: note: ‘struct glm::vec<1, T, Q>’ defined here struct vec<1, T, Q> ^~~~~~~~~~~~ In file included from /usr/include/glm/common.hpp:532, from /usr/include/glm/detail/func_geometric.inl:2, 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 /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/func_common.inl: In function ‘constexpr genType glm::abs(genType) [with genType = int]’: /usr/include/glm/detail/func_common.inl:37:2: error: body of ‘constexpr’ function ‘constexpr genType glm::abs(genType) [with genType = int]’ not a return-statement } ^ In file included from /usr/include/glm/ext/vector_bool2.hpp:5, from /usr/include/glm/vec2.hpp:5, from /usr/include/glm/glm.hpp:116, from /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec2.hpp: In instantiation of ‘struct glm::vec<2, short unsigned int, (glm::qualifier)0>’: /usr/include/glm/detail/func_packing.inl:17:43: required from here /usr/include/glm/detail/type_vec2.hpp:143:46: error: defaulted declaration ‘constexpr glm::vec<2, T, Q>& glm::vec<2, T, Q>::operator=(const glm::vec<2, T, Q>&) const [with T = short unsigned int; glm::qualifier Q = (glm::qualifier)0]’ does not match the expected signature GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator=(vec const& v) GLM_DEFAULT; ^~~~~~~~ /usr/include/glm/detail/type_vec2.hpp:143:46: note: expected signature: ‘glm::vec<2, short unsigned int, (glm::qualifier)0>& glm::vec<2, short unsigned int, (glm::qualifier)0>::operator=(const glm::vec<2, short unsigned int, (glm::qualifier)0>&)’ /usr/include/glm/detail/type_vec2.hpp: In instantiation of ‘struct glm::vec<2, float, (glm::qualifier)0>’: /usr/include/glm/detail/func_packing.inl:17:68: required from here /usr/include/glm/detail/type_vec2.hpp:143:46: error: defaulted declaration ‘constexpr glm::vec<2, T, Q>& glm::vec<2, T, Q>::operator=(const glm::vec<2, T, Q>&) const [with T = float; glm::qualifier Q = (glm::qualifier)0]’ does not match the expected signature /usr/include/glm/detail/type_vec2.hpp:143:46: note: expected signature: ‘glm::vec<2, float, (glm::qualifier)0>& glm::vec<2, float, (glm::qualifier)0>::operator=(const glm::vec<2, float, (glm::qualifier)0>&)’ /usr/include/glm/detail/type_vec2.hpp: In instantiation of ‘struct glm::vec<2, short int, (glm::qualifier)0>’: /usr/include/glm/detail/func_packing.inl:46:34: required from here /usr/include/glm/detail/type_vec2.hpp:143:46: error: defaulted declaration ‘constexpr glm::vec<2, T, Q>& glm::vec<2, T, Q>::operator=(const glm::vec<2, T, Q>&) const [with T = short int; glm::qualifier Q = (glm::qualifier)0]’ does not match the expected signature /usr/include/glm/detail/type_vec2.hpp:143:46: note: expected signature: ‘glm::vec<2, short int, (glm::qualifier)0>& glm::vec<2, short int, (glm::qualifier)0>::operator=(const glm::vec<2, short int, (glm::qualifier)0>&)’ In file included from /usr/include/glm/ext/vector_bool4.hpp:5, from /usr/include/glm/vec4.hpp:5, from /usr/include/glm/glm.hpp:118, from /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec4.hpp: In instantiation of ‘struct glm::vec<4, unsigned char, (glm::qualifier)0>’: /usr/include/glm/detail/func_packing.inl:75:42: required from here /usr/include/glm/detail/type_vec4.hpp:248:45: error: defaulted declaration ‘constexpr glm::vec<4, T, Q>& glm::vec<4, T, Q>::operator=(const glm::vec<4, T, Q>&) const [with T = unsigned char; glm::qualifier Q = (glm::qualifier)0]’ does not match the expected signature GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator=(vec<4, T, Q> const& v) GLM_DEFAULT; ^~~~~~~~ /usr/include/glm/detail/type_vec4.hpp:248:45: note: expected signature: ‘glm::vec<4, unsigned char, (glm::qualifier)0>& glm::vec<4, unsigned char, (glm::qualifier)0>::operator=(const glm::vec<4, unsigned char, (glm::qualifier)0>&)’ /usr/include/glm/detail/type_vec4.hpp: In instantiation of ‘struct glm::vec<4, float, (glm::qualifier)0>’: /usr/include/glm/detail/func_packing.inl:75:67: required from here /usr/include/glm/detail/type_vec4.hpp:248:45: error: defaulted declaration ‘constexpr glm::vec<4, T, Q>& glm::vec<4, T, Q>::operator=(const glm::vec<4, T, Q>&) const [with T = float; glm::qualifier Q = (glm::qualifier)0]’ does not match the expected signature /usr/include/glm/detail/type_vec4.hpp:248:45: note: expected signature: ‘glm::vec<4, float, (glm::qualifier)0>& glm::vec<4, float, (glm::qualifier)0>::operator=(const glm::vec<4, float, (glm::qualifier)0>&)’ /usr/include/glm/detail/type_vec4.hpp: In instantiation of ‘struct glm::vec<4, signed char, (glm::qualifier)0>’: /usr/include/glm/detail/func_packing.inl:106:40: required from here /usr/include/glm/detail/type_vec4.hpp:248:45: error: defaulted declaration ‘constexpr glm::vec<4, T, Q>& glm::vec<4, T, Q>::operator=(const glm::vec<4, T, Q>&) const [with T = signed char; glm::qualifier Q = (glm::qualifier)0]’ does not match the expected signature /usr/include/glm/detail/type_vec4.hpp:248:45: note: expected signature: ‘glm::vec<4, signed char, (glm::qualifier)0>& glm::vec<4, signed char, (glm::qualifier)0>::operator=(const glm::vec<4, signed char, (glm::qualifier)0>&)’ In file included from /usr/include/glm/ext/vector_bool2.hpp:5, from /usr/include/glm/vec2.hpp:5, from /usr/include/glm/glm.hpp:116, from /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec2.hpp: In instantiation of ‘struct glm::vec<2, unsigned int, (glm::qualifier)0>’: /usr/include/glm/detail/func_packing.inl:137:16: required from here /usr/include/glm/detail/type_vec2.hpp:143:46: error: defaulted declaration ‘constexpr glm::vec<2, T, Q>& glm::vec<2, T, Q>::operator=(const glm::vec<2, T, Q>&) const [with T = unsigned int; glm::qualifier Q = (glm::qualifier)0]’ does not match the expected signature GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator=(vec const& v) GLM_DEFAULT; ^~~~~~~~ /usr/include/glm/detail/type_vec2.hpp:143:46: note: expected signature: ‘glm::vec<2, unsigned int, (glm::qualifier)0>& glm::vec<2, unsigned int, (glm::qualifier)0>::operator=(const glm::vec<2, unsigned int, (glm::qualifier)0>&)’ 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 /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec2.inl: In instantiation of ‘constexpr T& glm::vec<2, T, Q>::operator[](glm::vec<2, T, Q>::length_type) const [with T = short unsigned int; glm::qualifier Q = (glm::qualifier)0; glm::vec<2, T, Q>::length_type = int]’: /usr/include/glm/detail/func_packing.inl:19:21: required from here /usr/include/glm/detail/type_vec2.inl:111:11: error: binding reference of type ‘short unsigned int&’ to ‘const short unsigned int’ discards qualifiers return x; ^ /usr/include/glm/detail/type_vec2.inl:113:11: error: binding reference of type ‘short unsigned int&’ to ‘const short unsigned int’ discards qualifiers return y; ^ /usr/include/glm/detail/type_vec2.inl:115:2: error: body of ‘constexpr’ function ‘constexpr T& glm::vec<2, T, Q>::operator[](glm::vec<2, T, Q>::length_type) const [with T = short unsigned int; glm::qualifier Q = (glm::qualifier)0; glm::vec<2, T, Q>::length_type = int]’ not a return-statement } ^ /usr/include/glm/detail/type_vec2.inl: In instantiation of ‘constexpr T& glm::vec<2, T, Q>::operator[](glm::vec<2, T, Q>::length_type) const [with T = short int; glm::qualifier Q = (glm::qualifier)0; glm::vec<2, T, Q>::length_type = int]’: /usr/include/glm/detail/func_packing.inl:48:21: required from here /usr/include/glm/detail/type_vec2.inl:111:11: error: binding reference of type ‘short int&’ to ‘const short int’ discards qualifiers return x; ^ /usr/include/glm/detail/type_vec2.inl:113:11: error: binding reference of type ‘short int&’ to ‘const short int’ discards qualifiers return y; ^ /usr/include/glm/detail/type_vec2.inl:115:2: error: body of ‘constexpr’ function ‘constexpr T& glm::vec<2, T, Q>::operator[](glm::vec<2, T, Q>::length_type) const [with T = short int; glm::qualifier Q = (glm::qualifier)0; glm::vec<2, T, Q>::length_type = int]’ not a return-statement } ^ In file included from /usr/include/glm/detail/type_vec4.hpp:503, from /usr/include/glm/ext/vector_bool4.hpp:5, from /usr/include/glm/vec4.hpp:5, from /usr/include/glm/glm.hpp:118, from /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec4.inl: In instantiation of ‘constexpr T& glm::vec<4, T, Q>::operator[](glm::vec<4, T, Q>::length_type) const [with T = unsigned char; glm::qualifier Q = (glm::qualifier)0; glm::vec<4, T, Q>::length_type = int]’: /usr/include/glm/detail/func_packing.inl:77:21: required from here /usr/include/glm/detail/type_vec4.inl:484:11: error: binding reference of type ‘unsigned char&’ to ‘const unsigned char’ discards qualifiers return x; ^ /usr/include/glm/detail/type_vec4.inl:486:11: error: binding reference of type ‘unsigned char&’ to ‘const unsigned char’ discards qualifiers return y; ^ /usr/include/glm/detail/type_vec4.inl:488:11: error: binding reference of type ‘unsigned char&’ to ‘const unsigned char’ discards qualifiers return z; ^ /usr/include/glm/detail/type_vec4.inl:490:11: error: binding reference of type ‘unsigned char&’ to ‘const unsigned char’ discards qualifiers return w; ^ /usr/include/glm/detail/type_vec4.inl:492:2: error: body of ‘constexpr’ function ‘constexpr T& glm::vec<4, T, Q>::operator[](glm::vec<4, T, Q>::length_type) const [with T = unsigned char; glm::qualifier Q = (glm::qualifier)0; glm::vec<4, T, Q>::length_type = int]’ not a return-statement } ^ /usr/include/glm/detail/type_vec4.inl: In instantiation of ‘constexpr T& glm::vec<4, T, Q>::operator[](glm::vec<4, T, Q>::length_type) const [with T = signed char; glm::qualifier Q = (glm::qualifier)0; glm::vec<4, T, Q>::length_type = int]’: /usr/include/glm/detail/func_packing.inl:108:21: required from here /usr/include/glm/detail/type_vec4.inl:484:11: error: binding reference of type ‘signed char&’ to ‘const signed char’ discards qualifiers return x; ^ /usr/include/glm/detail/type_vec4.inl:486:11: error: binding reference of type ‘signed char&’ to ‘const signed char’ discards qualifiers return y; ^ /usr/include/glm/detail/type_vec4.inl:488:11: error: binding reference of type ‘signed char&’ to ‘const signed char’ discards qualifiers return z; ^ /usr/include/glm/detail/type_vec4.inl:490:11: error: binding reference of type ‘signed char&’ to ‘const signed char’ discards qualifiers return w; ^ /usr/include/glm/detail/type_vec4.inl:492:2: error: body of ‘constexpr’ function ‘constexpr T& glm::vec<4, T, Q>::operator[](glm::vec<4, T, Q>::length_type) const [with T = signed char; glm::qualifier Q = (glm::qualifier)0; glm::vec<4, T, Q>::length_type = int]’ not a return-statement } ^ 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 /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec2.inl: In instantiation of ‘constexpr T& glm::vec<2, T, Q>::operator[](glm::vec<2, T, Q>::length_type) const [with T = unsigned int; glm::qualifier Q = (glm::qualifier)0; glm::vec<2, T, Q>::length_type = int]’: /usr/include/glm/detail/func_packing.inl:137:16: required from here /usr/include/glm/detail/type_vec2.inl:111:11: error: binding reference of type ‘unsigned int&’ to ‘const unsigned int’ discards qualifiers return x; ^ /usr/include/glm/detail/type_vec2.inl:113:11: error: binding reference of type ‘unsigned int&’ to ‘const unsigned int’ discards qualifiers return y; ^ /usr/include/glm/detail/type_vec2.inl:115:2: error: body of ‘constexpr’ function ‘constexpr T& glm::vec<2, T, Q>::operator[](glm::vec<2, T, Q>::length_type) const [with T = unsigned int; glm::qualifier Q = (glm::qualifier)0; glm::vec<2, T, Q>::length_type = int]’ not a return-statement } ^ In file included from /usr/include/glm/detail/type_vec4.hpp:503, from /usr/include/glm/ext/vector_bool4.hpp:5, from /usr/include/glm/vec4.hpp:5, from /usr/include/glm/glm.hpp:118, from /home/john/temp/glm-test/main.cpp:6: /usr/include/glm/detail/type_vec4.inl: In instantiation of ‘constexpr glm::vec<4, T, Q>& glm::vec<4, T, Q>::operator*=(U) const [with U = float; T = float; glm::qualifier Q = (glm::qualifier)0]’: /usr/include/glm/detail/type_vec4.inl:866:26: required from ‘constexpr glm::vec<4, T, Q> glm::operator*(const glm::vec<4, T, Q>&, const T&) [with T = float; glm::qualifier Q = (glm::qualifier)0]’ /usr/include/glm/detail/func_packing.inl:75:71: required from here /usr/include/glm/detail/type_vec4.inl:583:114: error: binding reference of type ‘glm::vec<4, float, (glm::qualifier)0>&’ to ‘const glm::vec<4, float, (glm::qualifier)0>’ discards qualifiers return (*this = detail::compute_vec4_mul::value>::call(*this, vec<4, T, Q>(scalar))); ^ /usr/include/glm/detail/type_vec4.inl:584:2: error: body of ‘constexpr’ function ‘constexpr glm::vec<4, T, Q>& glm::vec<4, T, Q>::operator*=(U) const [with U = float; T = float; glm::qualifier Q = (glm::qualifier)0]’ not a return-statement } ^ make[2]: *** [CMakeFiles/glm_test.dir/build.make:63: CMakeFiles/glm_test.dir/main.cpp.o] Error 1 make[2]: Leaving directory '/home/john/temp/glm-test/build' make[1]: *** [CMakeFiles/Makefile2:73: CMakeFiles/glm_test.dir/all] Error 2 make[1]: Leaving directory '/home/john/temp/glm-test/build' make: *** [Makefile:84: all] Error 2