diff --git a/glm/core/type_vec1.hpp b/glm/core/type_vec1.hpp index 395cc789..0bc4d878 100644 --- a/glm/core/type_vec1.hpp +++ b/glm/core/type_vec1.hpp @@ -78,7 +78,9 @@ namespace detail // Implicit basic constructors GLM_FUNC_DECL tvec1(); +#ifndef GLM_NO_EXPLICIT_COPY GLM_FUNC_DECL tvec1(tvec1 const & v); +#endif ////////////////////////////////////// // Explicit basic constructors @@ -116,7 +118,9 @@ namespace detail ////////////////////////////////////// // Unary arithmetic operators +#ifndef GLM_NO_EXPLICIT_COPY GLM_FUNC_DECL tvec1 & operator= (tvec1 const & v); +#endif template GLM_FUNC_DECL tvec1 & operator= (tvec1 const & v); diff --git a/glm/core/type_vec1.inl b/glm/core/type_vec1.inl index 6b12e03d..4fff65e3 100644 --- a/glm/core/type_vec1.inl +++ b/glm/core/type_vec1.inl @@ -73,6 +73,7 @@ namespace detail ) {} +#ifndef GLM_NO_EXPLICIT_COPY template GLM_FUNC_QUALIFIER tvec1::tvec1 ( @@ -80,6 +81,7 @@ namespace detail ) : x(v.x) {} +#endif ////////////////////////////////////// // Explicit basic constructors @@ -148,6 +150,7 @@ namespace detail ////////////////////////////////////// // Unary arithmetic operators +#ifndef GLM_NO_EXPLICIT_COPY template GLM_FUNC_QUALIFIER tvec1 & tvec1::operator= ( @@ -157,6 +160,7 @@ namespace detail this->x = v.x; return *this; } +#endif template template diff --git a/glm/core/type_vec2.hpp b/glm/core/type_vec2.hpp index 97b9fa8f..70572d97 100644 --- a/glm/core/type_vec2.hpp +++ b/glm/core/type_vec2.hpp @@ -107,7 +107,9 @@ namespace detail // Implicit basic constructors GLM_FUNC_DECL tvec2(); +#ifndef GLM_NO_EXPLICIT_COPY GLM_FUNC_DECL tvec2(tvec2 const & v); +#endif ////////////////////////////////////// // Explicit basic constructors @@ -160,7 +162,9 @@ namespace detail ////////////////////////////////////// // Unary arithmetic operators +#ifndef GLM_NO_EXPLICIT_COPY GLM_FUNC_DECL tvec2 & operator= (tvec2 const & v); +#endif template GLM_FUNC_DECL tvec2 & operator= (tvec2 const & v); diff --git a/glm/core/type_vec2.inl b/glm/core/type_vec2.inl index fbad911b..c7d53f6e 100644 --- a/glm/core/type_vec2.inl +++ b/glm/core/type_vec2.inl @@ -76,6 +76,7 @@ namespace detail ) {} +#ifndef GLM_NO_EXPLICIT_COPY template GLM_FUNC_QUALIFIER tvec2::tvec2 ( @@ -84,6 +85,7 @@ namespace detail x(v.x), y(v.y) {} +#endif ////////////////////////////////////// // Explicit basic constructors @@ -179,6 +181,7 @@ namespace detail ////////////////////////////////////// // Unary arithmetic operators +#ifndef GLM_NO_EXPLICIT_COPY template GLM_FUNC_QUALIFIER tvec2 & tvec2::operator= ( @@ -189,6 +192,7 @@ namespace detail this->y = v.y; return *this; } +#endif template template diff --git a/glm/core/type_vec3.hpp b/glm/core/type_vec3.hpp index 26c9a219..3efe71d5 100644 --- a/glm/core/type_vec3.hpp +++ b/glm/core/type_vec3.hpp @@ -108,7 +108,9 @@ namespace detail // Implicit basic constructors GLM_FUNC_DECL tvec3(); +#ifndef GLM_NO_EXPLICIT_COPY GLM_FUNC_DECL tvec3(tvec3 const & v); +#endif ////////////////////////////////////// // Explicit basic constructors @@ -184,7 +186,9 @@ namespace detail ////////////////////////////////////// // Unary arithmetic operators +#ifndef GLM_NO_EXPLICIT_COPY GLM_FUNC_DECL tvec3 & operator= (tvec3 const & v); +#endif template GLM_FUNC_DECL tvec3 & operator= (tvec3 const & v); diff --git a/glm/core/type_vec3.inl b/glm/core/type_vec3.inl index 3bcf1c8a..0f774b5b 100644 --- a/glm/core/type_vec3.inl +++ b/glm/core/type_vec3.inl @@ -77,6 +77,7 @@ namespace detail ) {} +#ifndef GLM_NO_EXPLICIT_COPY template GLM_FUNC_QUALIFIER tvec3::tvec3 ( @@ -86,6 +87,7 @@ namespace detail y(v.y), z(v.z) {} +#endif ////////////////////////////////////// // Explicit basic constructors @@ -228,6 +230,7 @@ namespace detail ////////////////////////////////////// // Unary arithmetic operators +#ifndef GLM_NO_EXPLICIT_COPY template GLM_FUNC_QUALIFIER tvec3& tvec3::operator= ( @@ -239,6 +242,7 @@ namespace detail this->z = v.z; return *this; } +#endif template template diff --git a/glm/core/type_vec4.hpp b/glm/core/type_vec4.hpp index d7d092a2..98bd732a 100644 --- a/glm/core/type_vec4.hpp +++ b/glm/core/type_vec4.hpp @@ -109,7 +109,9 @@ namespace detail // Implicit basic constructors GLM_FUNC_DECL tvec4(); +#ifndef GLM_NO_EXPLICIT_COPY GLM_FUNC_DECL tvec4(type const & v); +#endif ////////////////////////////////////// // Explicit basic constructors @@ -239,7 +241,9 @@ namespace detail ////////////////////////////////////// // Unary arithmetic operators +#ifndef GLM_NO_EXPLICIT_COPY GLM_FUNC_DECL tvec4 & operator= (tvec4 const & v); +#endif template GLM_FUNC_DECL tvec4 & operator= (tvec4 const & v); diff --git a/glm/core/type_vec4.inl b/glm/core/type_vec4.inl index 744d2d0f..a636a6e8 100644 --- a/glm/core/type_vec4.inl +++ b/glm/core/type_vec4.inl @@ -78,6 +78,7 @@ namespace detail ) {} +#ifndef GLM_NO_EXPLICIT_COPY template GLM_FUNC_QUALIFIER tvec4::tvec4 ( @@ -88,6 +89,7 @@ namespace detail z(v.z), w(v.w) {} +#endif ////////////////////////////////////// // Explicit basic constructors @@ -367,6 +369,7 @@ namespace detail ////////////////////////////////////// // Unary arithmetic operators +#ifndef GLM_NO_EXPLICIT_COPY template GLM_FUNC_QUALIFIER tvec4 & tvec4::operator= ( @@ -379,6 +382,7 @@ namespace detail this->w = v.w; return *this; } +#endif template template