From 5ddfa3f8a95d49d31f381d8e34c487797d801527 Mon Sep 17 00:00:00 2001 From: Groove Date: Tue, 10 Jul 2018 22:17:31 +0200 Subject: [PATCH] More constexpr test --- glm/detail/type_mat3x3.hpp | 4 ++-- glm/detail/type_mat3x3.inl | 4 ++-- test/core/core_type_mat3x3.cpp | 4 ++++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/glm/detail/type_mat3x3.hpp b/glm/detail/type_mat3x3.hpp index 310ecba2..e1c68a82 100644 --- a/glm/detail/type_mat3x3.hpp +++ b/glm/detail/type_mat3x3.hpp @@ -30,7 +30,7 @@ namespace glm GLM_FUNC_DECL static GLM_CONSTEXPR_CXX11 length_type length() { return 3; } GLM_FUNC_DECL col_type & operator[](length_type i); - GLM_FUNC_DECL col_type const& operator[](length_type i) const; + GLM_FUNC_DECL GLM_CONSTEXPR_CXX11 col_type const& operator[](length_type i) const; // -- Constructors -- @@ -175,7 +175,7 @@ namespace glm // -- Boolean operators -- template - GLM_FUNC_DECL bool operator==(mat<3, 3, T, Q> const& m1, mat<3, 3, T, Q> const& m2); + GLM_FUNC_DECL GLM_CONSTEXPR_CXX11 bool operator==(mat<3, 3, T, Q> const& m1, mat<3, 3, T, Q> const& m2); template GLM_FUNC_DECL bool operator!=(mat<3, 3, T, Q> const& m1, mat<3, 3, T, Q> const& m2); diff --git a/glm/detail/type_mat3x3.inl b/glm/detail/type_mat3x3.inl index 456f6945..60beeb17 100644 --- a/glm/detail/type_mat3x3.inl +++ b/glm/detail/type_mat3x3.inl @@ -248,7 +248,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER typename mat<3, 3, T, Q>::col_type const& mat<3, 3, T, Q>::operator[](typename mat<3, 3, T, Q>::length_type i) const + GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CXX11 typename mat<3, 3, T, Q>::col_type const& mat<3, 3, T, Q>::operator[](typename mat<3, 3, T, Q>::length_type i) const { assert(i < this->length()); return this->value[i]; @@ -591,7 +591,7 @@ namespace glm // -- Boolean operators -- template - GLM_FUNC_QUALIFIER bool operator==(mat<3, 3, T, Q> const& m1, mat<3, 3, T, Q> const& m2) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CXX11 bool operator==(mat<3, 3, T, Q> const& m1, mat<3, 3, T, Q> const& m2) { return (m1[0] == m2[0]) && (m1[1] == m2[1]) && (m1[2] == m2[2]); } diff --git a/test/core/core_type_mat3x3.cpp b/test/core/core_type_mat3x3.cpp index e9e4b070..609b9dbe 100644 --- a/test/core/core_type_mat3x3.cpp +++ b/test/core/core_type_mat3x3.cpp @@ -187,6 +187,10 @@ static int test_constexpr() { #if GLM_HAS_CONSTEXPR_CXX11 static_assert(glm::mat3x3::length() == 3, "GLM: Failed constexpr"); + + GLM_CONSTEXPR_CXX11 glm::mat3x3 const Z(0.0f); + static_assert(Z[0] == glm::vec3(0.0f), "GLM: Failed constexpr"); + static_assert(Z == glm::mat3x3(0.0f), "GLM: Failed constexpr"); #endif return 0;