From 7e80d9582e88b852ad642b7f83295342c840c704 Mon Sep 17 00:00:00 2001 From: Stephen Xu Date: Tue, 21 Mar 2023 15:52:57 +0000 Subject: [PATCH 1/3] Revert PR #1107 due to potential ill-formed NDR --- glm/detail/setup.hpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/glm/detail/setup.hpp b/glm/detail/setup.hpp index 77b1add3..6f0365b0 100644 --- a/glm/detail/setup.hpp +++ b/glm/detail/setup.hpp @@ -212,16 +212,14 @@ // N2346 #if GLM_COMPILER & GLM_COMPILER_CLANG # define GLM_HAS_DEFAULTED_FUNCTIONS __has_feature(cxx_defaulted_functions) -#elif GLM_COMPILER & GLM_COMPILER_CUDA - // Do not use defaulted functions for CUDA compiler when function qualifiers are present -# define GLM_HAS_DEFAULTED_FUNCTIONS 0 #elif GLM_LANG & GLM_LANG_CXX11_FLAG # define GLM_HAS_DEFAULTED_FUNCTIONS 1 #else # define GLM_HAS_DEFAULTED_FUNCTIONS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \ ((GLM_COMPILER & GLM_COMPILER_INTEL)) || \ - ((GLM_COMPILER & GLM_COMPILER_HIP)))) + (GLM_COMPILER & GLM_COMPILER_CUDA)) || \ + ((GLM_COMPILER & GLM_COMPILER_HIP))) #endif // N2118 From 140e7cf1b2bd15d458d2aad254f1d43f74b3bbff Mon Sep 17 00:00:00 2001 From: Stephen Xu Date: Tue, 21 Mar 2023 16:29:36 +0000 Subject: [PATCH 2/3] Use different function qualifier for default-able functions --- glm/detail/setup.hpp | 8 ++++++++ glm/detail/type_mat2x2.hpp | 2 +- glm/detail/type_mat2x2.inl | 2 +- glm/detail/type_mat2x3.hpp | 2 +- glm/detail/type_mat2x3.inl | 2 +- glm/detail/type_mat2x4.hpp | 2 +- glm/detail/type_mat2x4.inl | 2 +- glm/detail/type_mat3x2.hpp | 2 +- glm/detail/type_mat3x2.inl | 2 +- glm/detail/type_mat3x3.hpp | 2 +- glm/detail/type_mat3x3.inl | 2 +- glm/detail/type_mat3x4.hpp | 2 +- glm/detail/type_mat3x4.inl | 2 +- glm/detail/type_mat4x2.hpp | 2 +- glm/detail/type_mat4x2.inl | 2 +- glm/detail/type_mat4x3.hpp | 2 +- glm/detail/type_mat4x3.inl | 2 +- glm/detail/type_mat4x4.hpp | 2 +- glm/detail/type_mat4x4.inl | 2 +- glm/detail/type_quat.hpp | 6 +++--- glm/detail/type_quat.inl | 6 +++--- glm/detail/type_vec1.hpp | 6 +++--- glm/detail/type_vec1.inl | 6 +++--- glm/detail/type_vec2.hpp | 6 +++--- glm/detail/type_vec2.inl | 6 +++--- glm/detail/type_vec3.hpp | 6 +++--- glm/detail/type_vec3.inl | 6 +++--- glm/detail/type_vec4.hpp | 6 +++--- glm/detail/type_vec4.inl | 6 +++--- glm/gtx/dual_quaternion.hpp | 6 +++--- glm/gtx/dual_quaternion.inl | 6 +++--- 31 files changed, 62 insertions(+), 54 deletions(-) diff --git a/glm/detail/setup.hpp b/glm/detail/setup.hpp index 6f0365b0..af667348 100644 --- a/glm/detail/setup.hpp +++ b/glm/detail/setup.hpp @@ -479,6 +479,14 @@ #define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL #define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE +#if GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_ENABLE +# define GLM_DEFAULTED_FUNC_DECL +# define GLM_DEFAULTED_FUNC_QUALIFIER +#else +# define GLM_DEFAULTED_FUNC_DECL GLM_FUNC_DECL +# define GLM_DEFAULTED_FUNC_QUALIFIER GLM_FUNC_QUALIFIER +#endif//GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_ENABLE + /////////////////////////////////////////////////////////////////////////////////// // Swizzle operators diff --git a/glm/detail/type_mat2x2.hpp b/glm/detail/type_mat2x2.hpp index b2c918c3..723993d2 100644 --- a/glm/detail/type_mat2x2.hpp +++ b/glm/detail/type_mat2x2.hpp @@ -32,7 +32,7 @@ namespace glm // -- Constructors -- - GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; template GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<2, 2, T, P> const& m); diff --git a/glm/detail/type_mat2x2.inl b/glm/detail/type_mat2x2.inl index 55e94fe6..e0a976c8 100644 --- a/glm/detail/type_mat2x2.inl +++ b/glm/detail/type_mat2x2.inl @@ -6,7 +6,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2, 2, T, Q>::mat() + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR mat<2, 2, T, Q>::mat() # if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INITIALIZER_LIST : value{col_type(1, 0), col_type(0, 1)} # endif diff --git a/glm/detail/type_mat2x3.hpp b/glm/detail/type_mat2x3.hpp index c02a913e..fc39afcd 100644 --- a/glm/detail/type_mat2x3.hpp +++ b/glm/detail/type_mat2x3.hpp @@ -33,7 +33,7 @@ namespace glm // -- Constructors -- - GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; template GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<2, 3, T, P> const& m); diff --git a/glm/detail/type_mat2x3.inl b/glm/detail/type_mat2x3.inl index ee48e8f8..6b935f01 100644 --- a/glm/detail/type_mat2x3.inl +++ b/glm/detail/type_mat2x3.inl @@ -4,7 +4,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2, 3, T, Q>::mat() + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR mat<2, 3, T, Q>::mat() # if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INITIALIZER_LIST : value{col_type(1, 0, 0), col_type(0, 1, 0)} # endif diff --git a/glm/detail/type_mat2x4.hpp b/glm/detail/type_mat2x4.hpp index b66acb08..b1375066 100644 --- a/glm/detail/type_mat2x4.hpp +++ b/glm/detail/type_mat2x4.hpp @@ -33,7 +33,7 @@ namespace glm // -- Constructors -- - GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; template GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<2, 4, T, P> const& m); diff --git a/glm/detail/type_mat2x4.inl b/glm/detail/type_mat2x4.inl index 72f7d73e..197bee44 100644 --- a/glm/detail/type_mat2x4.inl +++ b/glm/detail/type_mat2x4.inl @@ -4,7 +4,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2, 4, T, Q>::mat() + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR mat<2, 4, T, Q>::mat() # if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INITIALIZER_LIST : value{col_type(1, 0, 0, 0), col_type(0, 1, 0, 0)} # endif diff --git a/glm/detail/type_mat3x2.hpp b/glm/detail/type_mat3x2.hpp index 0ddb65e4..99cd4996 100644 --- a/glm/detail/type_mat3x2.hpp +++ b/glm/detail/type_mat3x2.hpp @@ -33,7 +33,7 @@ namespace glm // -- Constructors -- - GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; template GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<3, 2, T, P> const& m); diff --git a/glm/detail/type_mat3x2.inl b/glm/detail/type_mat3x2.inl index fcf9447d..f645e5dc 100644 --- a/glm/detail/type_mat3x2.inl +++ b/glm/detail/type_mat3x2.inl @@ -4,7 +4,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3, 2, T, Q>::mat() + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR mat<3, 2, T, Q>::mat() # if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INITIALIZER_LIST : value{col_type(1, 0), col_type(0, 1), col_type(0, 0)} # endif diff --git a/glm/detail/type_mat3x3.hpp b/glm/detail/type_mat3x3.hpp index 7aac3219..8237b3fd 100644 --- a/glm/detail/type_mat3x3.hpp +++ b/glm/detail/type_mat3x3.hpp @@ -32,7 +32,7 @@ namespace glm // -- Constructors -- - GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; template GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<3, 3, T, P> const& m); diff --git a/glm/detail/type_mat3x3.inl b/glm/detail/type_mat3x3.inl index 233473e3..407468e3 100644 --- a/glm/detail/type_mat3x3.inl +++ b/glm/detail/type_mat3x3.inl @@ -6,7 +6,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3, 3, T, Q>::mat() + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR mat<3, 3, T, Q>::mat() # if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INITIALIZER_LIST : value{col_type(1, 0, 0), col_type(0, 1, 0), col_type(0, 0, 1)} # endif diff --git a/glm/detail/type_mat3x4.hpp b/glm/detail/type_mat3x4.hpp index c8a1f2cc..5347cd18 100644 --- a/glm/detail/type_mat3x4.hpp +++ b/glm/detail/type_mat3x4.hpp @@ -33,7 +33,7 @@ namespace glm // -- Constructors -- - GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; template GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<3, 4, T, P> const& m); diff --git a/glm/detail/type_mat3x4.inl b/glm/detail/type_mat3x4.inl index 43ab3fdd..8fc6beef 100644 --- a/glm/detail/type_mat3x4.inl +++ b/glm/detail/type_mat3x4.inl @@ -4,7 +4,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3, 4, T, Q>::mat() + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR mat<3, 4, T, Q>::mat() # if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INITIALIZER_LIST : value{col_type(1, 0, 0, 0), col_type(0, 1, 0, 0), col_type(0, 0, 1, 0)} # endif diff --git a/glm/detail/type_mat4x2.hpp b/glm/detail/type_mat4x2.hpp index df51af70..f65423cf 100644 --- a/glm/detail/type_mat4x2.hpp +++ b/glm/detail/type_mat4x2.hpp @@ -33,7 +33,7 @@ namespace glm // -- Constructors -- - GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; template GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<4, 2, T, P> const& m); diff --git a/glm/detail/type_mat4x2.inl b/glm/detail/type_mat4x2.inl index 8fc4c3b3..047f6876 100644 --- a/glm/detail/type_mat4x2.inl +++ b/glm/detail/type_mat4x2.inl @@ -4,7 +4,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<4, 2, T, Q>::mat() + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR mat<4, 2, T, Q>::mat() # if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INITIALIZER_LIST : value{col_type(1, 0), col_type(0, 1), col_type(0, 0), col_type(0, 0)} # endif diff --git a/glm/detail/type_mat4x3.hpp b/glm/detail/type_mat4x3.hpp index 42c0281e..75415e63 100644 --- a/glm/detail/type_mat4x3.hpp +++ b/glm/detail/type_mat4x3.hpp @@ -33,7 +33,7 @@ namespace glm // -- Constructors -- - GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; template GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<4, 3, T, P> const& m); diff --git a/glm/detail/type_mat4x3.inl b/glm/detail/type_mat4x3.inl index 994a9332..3a6f8eb2 100644 --- a/glm/detail/type_mat4x3.inl +++ b/glm/detail/type_mat4x3.inl @@ -4,7 +4,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<4, 3, T, Q>::mat() + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR mat<4, 3, T, Q>::mat() # if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INITIALIZER_LIST : value{col_type(1, 0, 0), col_type(0, 1, 0), col_type(0, 0, 1), col_type(0, 0, 0)} # endif diff --git a/glm/detail/type_mat4x4.hpp b/glm/detail/type_mat4x4.hpp index dd3c5f81..b12f187b 100644 --- a/glm/detail/type_mat4x4.hpp +++ b/glm/detail/type_mat4x4.hpp @@ -32,7 +32,7 @@ namespace glm // -- Constructors -- - GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; template GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<4, 4, T, P> const& m); diff --git a/glm/detail/type_mat4x4.inl b/glm/detail/type_mat4x4.inl index 2a82bbab..6aeca33a 100644 --- a/glm/detail/type_mat4x4.inl +++ b/glm/detail/type_mat4x4.inl @@ -6,7 +6,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<4, 4, T, Q>::mat() + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR mat<4, 4, T, Q>::mat() # if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INITIALIZER_LIST : value{col_type(1, 0, 0, 0), col_type(0, 1, 0, 0), col_type(0, 0, 1, 0), col_type(0, 0, 0, 1)} # endif diff --git a/glm/detail/type_quat.hpp b/glm/detail/type_quat.hpp index 376c0dc8..8ce048fb 100644 --- a/glm/detail/type_quat.hpp +++ b/glm/detail/type_quat.hpp @@ -80,8 +80,8 @@ namespace glm // -- Implicit basic constructors -- - GLM_FUNC_DECL GLM_CONSTEXPR qua() GLM_DEFAULT_CTOR; - GLM_FUNC_DECL GLM_CONSTEXPR qua(qua const& q) GLM_DEFAULT; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR qua() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR qua(qua const& q) GLM_DEFAULT; template GLM_FUNC_DECL GLM_CONSTEXPR qua(qua const& q); @@ -121,7 +121,7 @@ namespace glm // -- Unary arithmetic operators -- - GLM_FUNC_DECL GLM_CONSTEXPR qua& operator=(qua const& q) GLM_DEFAULT; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR qua& operator=(qua const& q) GLM_DEFAULT; template GLM_FUNC_DECL GLM_CONSTEXPR qua& operator=(qua const& q); diff --git a/glm/detail/type_quat.inl b/glm/detail/type_quat.inl index 52deed45..88bbc84a 100644 --- a/glm/detail/type_quat.inl +++ b/glm/detail/type_quat.inl @@ -97,7 +97,7 @@ namespace detail # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua::qua() + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR qua::qua() # if GLM_CONFIG_CTOR_INIT != GLM_CTOR_INIT_DISABLE # ifdef GLM_FORCE_QUAT_DATA_XYZW : x(0), y(0), z(0), w(1) @@ -110,7 +110,7 @@ namespace detail # if GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua::qua(qua const& q) + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR qua::qua(qua const& q) # ifdef GLM_FORCE_QUAT_DATA_XYZW : x(q.x), y(q.y), z(q.z), w(q.w) # else @@ -246,7 +246,7 @@ namespace detail # if GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua & qua::operator=(qua const& q) + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR qua & qua::operator=(qua const& q) { this->w = q.w; this->x = q.x; diff --git a/glm/detail/type_vec1.hpp b/glm/detail/type_vec1.hpp index ed381cc4..ea916b0d 100644 --- a/glm/detail/type_vec1.hpp +++ b/glm/detail/type_vec1.hpp @@ -92,8 +92,8 @@ namespace glm // -- Implicit basic constructors -- - GLM_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR; - GLM_FUNC_DECL GLM_CONSTEXPR vec(vec const& v) GLM_DEFAULT; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec(vec const& v) GLM_DEFAULT; template GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, T, P> const& v); @@ -129,7 +129,7 @@ namespace glm */ // -- Unary arithmetic operators -- - GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator=(vec const& v) GLM_DEFAULT; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator=(vec const& v) GLM_DEFAULT; template GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator=(vec<1, U, Q> const& v); diff --git a/glm/detail/type_vec1.inl b/glm/detail/type_vec1.inl index e8c91a4b..9c9bdcb8 100644 --- a/glm/detail/type_vec1.inl +++ b/glm/detail/type_vec1.inl @@ -8,7 +8,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q>::vec() + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q>::vec() # if GLM_CONFIG_CTOR_INIT != GLM_CTOR_INIT_DISABLE : x(0) # endif @@ -17,7 +17,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q>::vec(vec<1, T, Q> const& v) + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q>::vec(vec<1, T, Q> const& v) : x(v.x) {} # endif @@ -79,7 +79,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator=(vec<1, T, Q> const& v) + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator=(vec<1, T, Q> const& v) { this->x = v.x; return *this; diff --git a/glm/detail/type_vec2.hpp b/glm/detail/type_vec2.hpp index 5aa969d7..d4ccc039 100644 --- a/glm/detail/type_vec2.hpp +++ b/glm/detail/type_vec2.hpp @@ -94,8 +94,8 @@ namespace glm // -- Implicit basic constructors -- - GLM_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR; - GLM_FUNC_DECL GLM_CONSTEXPR vec(vec const& v) GLM_DEFAULT; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec(vec const& v) GLM_DEFAULT; template GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<2, T, P> const& v); @@ -143,7 +143,7 @@ namespace glm // -- Unary arithmetic operators -- - GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator=(vec const& v) GLM_DEFAULT; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator=(vec const& v) GLM_DEFAULT; template GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator=(vec<2, U, Q> const& v); diff --git a/glm/detail/type_vec2.inl b/glm/detail/type_vec2.inl index 55ab64d4..d5b9deb9 100644 --- a/glm/detail/type_vec2.inl +++ b/glm/detail/type_vec2.inl @@ -8,7 +8,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<2, T, Q>::vec() + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR vec<2, T, Q>::vec() # if GLM_CONFIG_CTOR_INIT != GLM_CTOR_INIT_DISABLE : x(0), y(0) # endif @@ -17,7 +17,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<2, T, Q>::vec(vec<2, T, Q> const& v) + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR vec<2, T, Q>::vec(vec<2, T, Q> const& v) : x(v.x), y(v.y) {} # endif @@ -134,7 +134,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<2, T, Q> & vec<2, T, Q>::operator=(vec<2, T, Q> const& v) + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR vec<2, T, Q> & vec<2, T, Q>::operator=(vec<2, T, Q> const& v) { this->x = v.x; this->y = v.y; diff --git a/glm/detail/type_vec3.hpp b/glm/detail/type_vec3.hpp index cfc50006..4a636044 100644 --- a/glm/detail/type_vec3.hpp +++ b/glm/detail/type_vec3.hpp @@ -98,8 +98,8 @@ namespace glm // -- Implicit basic constructors -- - GLM_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR; - GLM_FUNC_DECL GLM_CONSTEXPR vec(vec const& v) GLM_DEFAULT; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec(vec const& v) GLM_DEFAULT; template GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<3, T, P> const& v); @@ -176,7 +176,7 @@ namespace glm // -- Unary arithmetic operators -- - GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q>& operator=(vec<3, T, Q> const& v) GLM_DEFAULT; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q>& operator=(vec<3, T, Q> const& v) GLM_DEFAULT; template GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator=(vec<3, U, Q> const& v); diff --git a/glm/detail/type_vec3.inl b/glm/detail/type_vec3.inl index 8d15db85..9d25eb21 100644 --- a/glm/detail/type_vec3.inl +++ b/glm/detail/type_vec3.inl @@ -8,7 +8,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec() + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec() # if GLM_CONFIG_CTOR_INIT != GLM_CTOR_INIT_DISABLE : x(0), y(0), z(0) # endif @@ -17,7 +17,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(vec<3, T, Q> const& v) + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(vec<3, T, Q> const& v) : x(v.x), y(v.y), z(v.z) {} # endif @@ -202,7 +202,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>& vec<3, T, Q>::operator=(vec<3, T, Q> const& v) + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>& vec<3, T, Q>::operator=(vec<3, T, Q> const& v) { this->x = v.x; this->y = v.y; diff --git a/glm/detail/type_vec4.hpp b/glm/detail/type_vec4.hpp index e78f5a56..d155df0a 100644 --- a/glm/detail/type_vec4.hpp +++ b/glm/detail/type_vec4.hpp @@ -97,8 +97,8 @@ namespace glm // -- Implicit basic constructors -- - GLM_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR; - GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<4, T, Q> const& v) GLM_DEFAULT; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec(vec<4, T, Q> const& v) GLM_DEFAULT; template GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<4, T, P> const& v); @@ -249,7 +249,7 @@ namespace glm // -- Unary arithmetic operators -- - GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator=(vec<4, T, Q> const& v) GLM_DEFAULT; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator=(vec<4, T, Q> const& v) GLM_DEFAULT; template GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator=(vec<4, U, Q> const& v); diff --git a/glm/detail/type_vec4.inl b/glm/detail/type_vec4.inl index f520c095..ff5757b3 100644 --- a/glm/detail/type_vec4.inl +++ b/glm/detail/type_vec4.inl @@ -131,7 +131,7 @@ namespace detail # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<4, T, Q>::vec() + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR vec<4, T, Q>::vec() # if GLM_CONFIG_CTOR_INIT != GLM_CTOR_INIT_DISABLE : x(0), y(0), z(0), w(0) # endif @@ -140,7 +140,7 @@ namespace detail # if GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<4, T, Q>::vec(vec<4, T, Q> const& v) + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR vec<4, T, Q>::vec(vec<4, T, Q> const& v) : x(v.x), y(v.y), z(v.z), w(v.w) {} # endif @@ -515,7 +515,7 @@ namespace detail # if GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<4, T, Q>& vec<4, T, Q>::operator=(vec<4, T, Q> const& v) + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR vec<4, T, Q>& vec<4, T, Q>::operator=(vec<4, T, Q> const& v) { this->x = v.x; this->y = v.y; diff --git a/glm/gtx/dual_quaternion.hpp b/glm/gtx/dual_quaternion.hpp index 6a51ab7d..a6f57613 100644 --- a/glm/gtx/dual_quaternion.hpp +++ b/glm/gtx/dual_quaternion.hpp @@ -56,8 +56,8 @@ namespace glm // -- Implicit basic constructors -- - GLM_FUNC_DECL GLM_CONSTEXPR tdualquat() GLM_DEFAULT; - GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat const& d) GLM_DEFAULT; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR tdualquat() GLM_DEFAULT; + GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat const& d) GLM_DEFAULT; template GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat const& d); @@ -77,7 +77,7 @@ namespace glm // -- Unary arithmetic operators -- - GLM_FUNC_DECL tdualquat & operator=(tdualquat const& m) GLM_DEFAULT; + GLM_DEFAULTED_FUNC_DECL tdualquat & operator=(tdualquat const& m) GLM_DEFAULT; template GLM_FUNC_DECL tdualquat & operator=(tdualquat const& m); diff --git a/glm/gtx/dual_quaternion.inl b/glm/gtx/dual_quaternion.inl index fad07ea8..7f990b3c 100644 --- a/glm/gtx/dual_quaternion.inl +++ b/glm/gtx/dual_quaternion.inl @@ -25,7 +25,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_DISABLE template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat::tdualquat() + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat::tdualquat() # if GLM_CONFIG_DEFAULTED_FUNCTIONS != GLM_DISABLE : real(qua()) , dual(qua(0, 0, 0, 0)) @@ -33,7 +33,7 @@ namespace glm {} template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat::tdualquat(tdualquat const& d) + GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat::tdualquat(tdualquat const& d) : real(d.real) , dual(d.dual) {} @@ -92,7 +92,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_DISABLE template - GLM_FUNC_QUALIFIER tdualquat & tdualquat::operator=(tdualquat const& q) + GLM_DEFAULTED_FUNC_QUALIFIER tdualquat & tdualquat::operator=(tdualquat const& q) { this->real = q.real; this->dual = q.dual; From 91c9409959d28f4080d1c432c48d252f11a69381 Mon Sep 17 00:00:00 2001 From: Stephen Xu Date: Tue, 21 Mar 2023 19:06:17 +0000 Subject: [PATCH 3/3] Use different qualifiers for default function and constructor So it is more robust against user configuration to force constructor initialisation --- glm/detail/setup.hpp | 14 +++++++++++--- glm/detail/type_mat2x2.hpp | 2 +- glm/detail/type_mat2x2.inl | 2 +- glm/detail/type_mat2x3.hpp | 2 +- glm/detail/type_mat2x3.inl | 2 +- glm/detail/type_mat2x4.hpp | 2 +- glm/detail/type_mat2x4.inl | 2 +- glm/detail/type_mat3x2.hpp | 2 +- glm/detail/type_mat3x2.inl | 2 +- glm/detail/type_mat3x3.hpp | 2 +- glm/detail/type_mat3x3.inl | 2 +- glm/detail/type_mat3x4.hpp | 2 +- glm/detail/type_mat3x4.inl | 2 +- glm/detail/type_mat4x2.hpp | 2 +- glm/detail/type_mat4x2.inl | 2 +- glm/detail/type_mat4x3.hpp | 2 +- glm/detail/type_mat4x3.inl | 2 +- glm/detail/type_mat4x4.hpp | 2 +- glm/detail/type_mat4x4.inl | 2 +- glm/detail/type_quat.hpp | 2 +- glm/detail/type_quat.inl | 2 +- glm/detail/type_vec1.hpp | 2 +- glm/detail/type_vec1.inl | 2 +- glm/detail/type_vec2.hpp | 2 +- glm/detail/type_vec2.inl | 2 +- glm/detail/type_vec3.hpp | 2 +- glm/detail/type_vec3.inl | 2 +- glm/detail/type_vec4.hpp | 2 +- glm/detail/type_vec4.inl | 2 +- 29 files changed, 39 insertions(+), 31 deletions(-) diff --git a/glm/detail/setup.hpp b/glm/detail/setup.hpp index af667348..41a0d4a1 100644 --- a/glm/detail/setup.hpp +++ b/glm/detail/setup.hpp @@ -479,13 +479,21 @@ #define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL #define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE -#if GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_ENABLE +// Do not use CUDA function qualifiers on CUDA compiler when functions are made default +#if GLM_HAS_DEFAULTED_FUNCTIONS # define GLM_DEFAULTED_FUNC_DECL -# define GLM_DEFAULTED_FUNC_QUALIFIER +# define GLM_DEFAULTED_FUNC_QUALIFIER GLM_INLINE #else # define GLM_DEFAULTED_FUNC_DECL GLM_FUNC_DECL # define GLM_DEFAULTED_FUNC_QUALIFIER GLM_FUNC_QUALIFIER -#endif//GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_ENABLE +#endif//GLM_HAS_DEFAULTED_FUNCTIONS +#if !defined(GLM_FORCE_CTOR_INIT) +# define GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_DEFAULTED_FUNC_DECL +# define GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_DEFAULTED_FUNC_QUALIFIER +#else +# define GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_FUNC_DECL +# define GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_FUNC_QUALIFIER +#endif//GLM_FORCE_CTOR_INIT /////////////////////////////////////////////////////////////////////////////////// // Swizzle operators diff --git a/glm/detail/type_mat2x2.hpp b/glm/detail/type_mat2x2.hpp index 723993d2..83bb189e 100644 --- a/glm/detail/type_mat2x2.hpp +++ b/glm/detail/type_mat2x2.hpp @@ -32,7 +32,7 @@ namespace glm // -- Constructors -- - GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; template GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<2, 2, T, P> const& m); diff --git a/glm/detail/type_mat2x2.inl b/glm/detail/type_mat2x2.inl index e0a976c8..7dea4b1b 100644 --- a/glm/detail/type_mat2x2.inl +++ b/glm/detail/type_mat2x2.inl @@ -6,7 +6,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR mat<2, 2, T, Q>::mat() + GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_CONSTEXPR mat<2, 2, T, Q>::mat() # if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INITIALIZER_LIST : value{col_type(1, 0), col_type(0, 1)} # endif diff --git a/glm/detail/type_mat2x3.hpp b/glm/detail/type_mat2x3.hpp index fc39afcd..3a268fee 100644 --- a/glm/detail/type_mat2x3.hpp +++ b/glm/detail/type_mat2x3.hpp @@ -33,7 +33,7 @@ namespace glm // -- Constructors -- - GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; template GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<2, 3, T, P> const& m); diff --git a/glm/detail/type_mat2x3.inl b/glm/detail/type_mat2x3.inl index 6b935f01..c9398817 100644 --- a/glm/detail/type_mat2x3.inl +++ b/glm/detail/type_mat2x3.inl @@ -4,7 +4,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR mat<2, 3, T, Q>::mat() + GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_CONSTEXPR mat<2, 3, T, Q>::mat() # if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INITIALIZER_LIST : value{col_type(1, 0, 0), col_type(0, 1, 0)} # endif diff --git a/glm/detail/type_mat2x4.hpp b/glm/detail/type_mat2x4.hpp index b1375066..e998f614 100644 --- a/glm/detail/type_mat2x4.hpp +++ b/glm/detail/type_mat2x4.hpp @@ -33,7 +33,7 @@ namespace glm // -- Constructors -- - GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; template GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<2, 4, T, P> const& m); diff --git a/glm/detail/type_mat2x4.inl b/glm/detail/type_mat2x4.inl index 197bee44..0095611e 100644 --- a/glm/detail/type_mat2x4.inl +++ b/glm/detail/type_mat2x4.inl @@ -4,7 +4,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR mat<2, 4, T, Q>::mat() + GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_CONSTEXPR mat<2, 4, T, Q>::mat() # if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INITIALIZER_LIST : value{col_type(1, 0, 0, 0), col_type(0, 1, 0, 0)} # endif diff --git a/glm/detail/type_mat3x2.hpp b/glm/detail/type_mat3x2.hpp index 99cd4996..b8df84f3 100644 --- a/glm/detail/type_mat3x2.hpp +++ b/glm/detail/type_mat3x2.hpp @@ -33,7 +33,7 @@ namespace glm // -- Constructors -- - GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; template GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<3, 2, T, P> const& m); diff --git a/glm/detail/type_mat3x2.inl b/glm/detail/type_mat3x2.inl index f645e5dc..a37cce40 100644 --- a/glm/detail/type_mat3x2.inl +++ b/glm/detail/type_mat3x2.inl @@ -4,7 +4,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR mat<3, 2, T, Q>::mat() + GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_CONSTEXPR mat<3, 2, T, Q>::mat() # if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INITIALIZER_LIST : value{col_type(1, 0), col_type(0, 1), col_type(0, 0)} # endif diff --git a/glm/detail/type_mat3x3.hpp b/glm/detail/type_mat3x3.hpp index 8237b3fd..de0924ae 100644 --- a/glm/detail/type_mat3x3.hpp +++ b/glm/detail/type_mat3x3.hpp @@ -32,7 +32,7 @@ namespace glm // -- Constructors -- - GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; template GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<3, 3, T, P> const& m); diff --git a/glm/detail/type_mat3x3.inl b/glm/detail/type_mat3x3.inl index 407468e3..6c9c0fd8 100644 --- a/glm/detail/type_mat3x3.inl +++ b/glm/detail/type_mat3x3.inl @@ -6,7 +6,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR mat<3, 3, T, Q>::mat() + GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_CONSTEXPR mat<3, 3, T, Q>::mat() # if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INITIALIZER_LIST : value{col_type(1, 0, 0), col_type(0, 1, 0), col_type(0, 0, 1)} # endif diff --git a/glm/detail/type_mat3x4.hpp b/glm/detail/type_mat3x4.hpp index 5347cd18..7995780a 100644 --- a/glm/detail/type_mat3x4.hpp +++ b/glm/detail/type_mat3x4.hpp @@ -33,7 +33,7 @@ namespace glm // -- Constructors -- - GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; template GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<3, 4, T, P> const& m); diff --git a/glm/detail/type_mat3x4.inl b/glm/detail/type_mat3x4.inl index 8fc6beef..2b5d04ff 100644 --- a/glm/detail/type_mat3x4.inl +++ b/glm/detail/type_mat3x4.inl @@ -4,7 +4,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR mat<3, 4, T, Q>::mat() + GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_CONSTEXPR mat<3, 4, T, Q>::mat() # if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INITIALIZER_LIST : value{col_type(1, 0, 0, 0), col_type(0, 1, 0, 0), col_type(0, 0, 1, 0)} # endif diff --git a/glm/detail/type_mat4x2.hpp b/glm/detail/type_mat4x2.hpp index f65423cf..9efc9ea1 100644 --- a/glm/detail/type_mat4x2.hpp +++ b/glm/detail/type_mat4x2.hpp @@ -33,7 +33,7 @@ namespace glm // -- Constructors -- - GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; template GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<4, 2, T, P> const& m); diff --git a/glm/detail/type_mat4x2.inl b/glm/detail/type_mat4x2.inl index 047f6876..7a340380 100644 --- a/glm/detail/type_mat4x2.inl +++ b/glm/detail/type_mat4x2.inl @@ -4,7 +4,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR mat<4, 2, T, Q>::mat() + GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_CONSTEXPR mat<4, 2, T, Q>::mat() # if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INITIALIZER_LIST : value{col_type(1, 0), col_type(0, 1), col_type(0, 0), col_type(0, 0)} # endif diff --git a/glm/detail/type_mat4x3.hpp b/glm/detail/type_mat4x3.hpp index 75415e63..1e616638 100644 --- a/glm/detail/type_mat4x3.hpp +++ b/glm/detail/type_mat4x3.hpp @@ -33,7 +33,7 @@ namespace glm // -- Constructors -- - GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; template GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<4, 3, T, P> const& m); diff --git a/glm/detail/type_mat4x3.inl b/glm/detail/type_mat4x3.inl index 3a6f8eb2..066ae9ef 100644 --- a/glm/detail/type_mat4x3.inl +++ b/glm/detail/type_mat4x3.inl @@ -4,7 +4,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR mat<4, 3, T, Q>::mat() + GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_CONSTEXPR mat<4, 3, T, Q>::mat() # if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INITIALIZER_LIST : value{col_type(1, 0, 0), col_type(0, 1, 0), col_type(0, 0, 1), col_type(0, 0, 0)} # endif diff --git a/glm/detail/type_mat4x4.hpp b/glm/detail/type_mat4x4.hpp index b12f187b..ba269781 100644 --- a/glm/detail/type_mat4x4.hpp +++ b/glm/detail/type_mat4x4.hpp @@ -32,7 +32,7 @@ namespace glm // -- Constructors -- - GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR; template GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<4, 4, T, P> const& m); diff --git a/glm/detail/type_mat4x4.inl b/glm/detail/type_mat4x4.inl index 6aeca33a..aec5554c 100644 --- a/glm/detail/type_mat4x4.inl +++ b/glm/detail/type_mat4x4.inl @@ -6,7 +6,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR mat<4, 4, T, Q>::mat() + GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_CONSTEXPR mat<4, 4, T, Q>::mat() # if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INITIALIZER_LIST : value{col_type(1, 0, 0, 0), col_type(0, 1, 0, 0), col_type(0, 0, 1, 0), col_type(0, 0, 0, 1)} # endif diff --git a/glm/detail/type_quat.hpp b/glm/detail/type_quat.hpp index 8ce048fb..67a84742 100644 --- a/glm/detail/type_quat.hpp +++ b/glm/detail/type_quat.hpp @@ -80,7 +80,7 @@ namespace glm // -- Implicit basic constructors -- - GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR qua() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR qua() GLM_DEFAULT_CTOR; GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR qua(qua const& q) GLM_DEFAULT; template GLM_FUNC_DECL GLM_CONSTEXPR qua(qua const& q); diff --git a/glm/detail/type_quat.inl b/glm/detail/type_quat.inl index 88bbc84a..4b1e84d9 100644 --- a/glm/detail/type_quat.inl +++ b/glm/detail/type_quat.inl @@ -97,7 +97,7 @@ namespace detail # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR qua::qua() + GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_CONSTEXPR qua::qua() # if GLM_CONFIG_CTOR_INIT != GLM_CTOR_INIT_DISABLE # ifdef GLM_FORCE_QUAT_DATA_XYZW : x(0), y(0), z(0), w(1) diff --git a/glm/detail/type_vec1.hpp b/glm/detail/type_vec1.hpp index ea916b0d..91232f9c 100644 --- a/glm/detail/type_vec1.hpp +++ b/glm/detail/type_vec1.hpp @@ -92,7 +92,7 @@ namespace glm // -- Implicit basic constructors -- - GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR; GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec(vec const& v) GLM_DEFAULT; template GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, T, P> const& v); diff --git a/glm/detail/type_vec1.inl b/glm/detail/type_vec1.inl index 9c9bdcb8..18411e7f 100644 --- a/glm/detail/type_vec1.inl +++ b/glm/detail/type_vec1.inl @@ -8,7 +8,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q>::vec() + GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_CONSTEXPR vec<1, T, Q>::vec() # if GLM_CONFIG_CTOR_INIT != GLM_CTOR_INIT_DISABLE : x(0) # endif diff --git a/glm/detail/type_vec2.hpp b/glm/detail/type_vec2.hpp index d4ccc039..424868f5 100644 --- a/glm/detail/type_vec2.hpp +++ b/glm/detail/type_vec2.hpp @@ -94,7 +94,7 @@ namespace glm // -- Implicit basic constructors -- - GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR; GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec(vec const& v) GLM_DEFAULT; template GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<2, T, P> const& v); diff --git a/glm/detail/type_vec2.inl b/glm/detail/type_vec2.inl index d5b9deb9..24850965 100644 --- a/glm/detail/type_vec2.inl +++ b/glm/detail/type_vec2.inl @@ -8,7 +8,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR vec<2, T, Q>::vec() + GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_CONSTEXPR vec<2, T, Q>::vec() # if GLM_CONFIG_CTOR_INIT != GLM_CTOR_INIT_DISABLE : x(0), y(0) # endif diff --git a/glm/detail/type_vec3.hpp b/glm/detail/type_vec3.hpp index 4a636044..67104800 100644 --- a/glm/detail/type_vec3.hpp +++ b/glm/detail/type_vec3.hpp @@ -98,7 +98,7 @@ namespace glm // -- Implicit basic constructors -- - GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR; GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec(vec const& v) GLM_DEFAULT; template GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<3, T, P> const& v); diff --git a/glm/detail/type_vec3.inl b/glm/detail/type_vec3.inl index 9d25eb21..5a258d1f 100644 --- a/glm/detail/type_vec3.inl +++ b/glm/detail/type_vec3.inl @@ -8,7 +8,7 @@ namespace glm # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec() + GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec() # if GLM_CONFIG_CTOR_INIT != GLM_CTOR_INIT_DISABLE : x(0), y(0), z(0) # endif diff --git a/glm/detail/type_vec4.hpp b/glm/detail/type_vec4.hpp index d155df0a..62cf8b98 100644 --- a/glm/detail/type_vec4.hpp +++ b/glm/detail/type_vec4.hpp @@ -97,7 +97,7 @@ namespace glm // -- Implicit basic constructors -- - GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR; + GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR; GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec(vec<4, T, Q> const& v) GLM_DEFAULT; template GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<4, T, P> const& v); diff --git a/glm/detail/type_vec4.inl b/glm/detail/type_vec4.inl index ff5757b3..b0f9cdd7 100644 --- a/glm/detail/type_vec4.inl +++ b/glm/detail/type_vec4.inl @@ -131,7 +131,7 @@ namespace detail # if GLM_CONFIG_DEFAULTED_DEFAULT_CTOR == GLM_DISABLE template - GLM_DEFAULTED_FUNC_QUALIFIER GLM_CONSTEXPR vec<4, T, Q>::vec() + GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_CONSTEXPR vec<4, T, Q>::vec() # if GLM_CONFIG_CTOR_INIT != GLM_CTOR_INIT_DISABLE : x(0), y(0), z(0), w(0) # endif