Przeglądaj źródła

Simplify the constexpr declarations of the GLM_META_PROG_HELPERS

- No repetition
- Half the size
Jesse Talavera-Greenberg 10 lat temu
rodzic
commit
c2078afc12

+ 4 - 11
glm/detail/type_mat2x2.hpp

@@ -55,17 +55,10 @@ namespace glm
 		friend tvec2<U, Q> operator/(tvec2<U, Q> const & v, tmat2x2<U, Q> const & m);
 
 #		ifdef GLM_META_PROG_HELPERS
-#			if GLM_HAS_CONSTEXPR
-				static GLM_CONSTEXPR length_t components = 2;
-				static GLM_CONSTEXPR length_t columns = 2;
-				static GLM_CONSTEXPR length_t rows = 2;
-				static GLM_CONSTEXPR precision prec = P;
-#			else
-				static const length_t components = 2;
-				static const length_t columns = 2;
-				static const length_t rows = 2;
-				static const precision prec = P;
-#			endif//GLM_HAS_CONSTEXPR
+			static GLM_CONSTEXPR_MAYBE length_t components = 2;
+			static GLM_CONSTEXPR_MAYBE length_t columns = 2;
+			static GLM_CONSTEXPR_MAYBE length_t rows = 2;
+			static GLM_CONSTEXPR_MAYBE precision prec = P;
 #		endif//GLM_META_PROG_HELPERS
 
 	private:

+ 4 - 11
glm/detail/type_mat2x3.hpp

@@ -51,17 +51,10 @@ namespace glm
 		typedef T value_type;
 
 #		ifdef GLM_META_PROG_HELPERS
-#			if GLM_HAS_CONSTEXPR
-				static GLM_CONSTEXPR length_t components = 2;
-				static GLM_CONSTEXPR length_t cols = 3;
-				static GLM_CONSTEXPR length_t rows = 2;
-				static GLM_CONSTEXPR precision prec = P;
-#			else
-				static const length_t components = 2;
-				static const length_t cols = 3;
-				static const length_t rows = 2;
-				static const precision prec = P;
-#			endif//GLM_HAS_CONSTEXPR
+			static GLM_CONSTEXPR_MAYBE length_t components = 2;
+			static GLM_CONSTEXPR_MAYBE length_t cols = 3;
+			static GLM_CONSTEXPR_MAYBE length_t rows = 2;
+			static GLM_CONSTEXPR_MAYBE precision prec = P;
 #		endif//GLM_META_PROG_HELPERS
 
 	private:

+ 4 - 11
glm/detail/type_mat2x4.hpp

@@ -51,17 +51,10 @@ namespace glm
 		typedef T value_type;
 
 #		ifdef GLM_META_PROG_HELPERS
-#			if GLM_HAS_CONSTEXPR
-				static GLM_CONSTEXPR length_t components = 2;
-				static GLM_CONSTEXPR length_t cols = 4;
-				static GLM_CONSTEXPR length_t rows = 2;
-				static GLM_CONSTEXPR precision prec = P;
-#			else
-				static const length_t components = 2;
-				static const length_t cols = 4;
-				static const length_t rows = 2;
-				static const precision prec = P;
-#			endif
+			static GLM_CONSTEXPR_MAYBE length_t components = 2;
+			static GLM_CONSTEXPR_MAYBE length_t cols = 4;
+			static GLM_CONSTEXPR_MAYBE length_t rows = 2;
+			static GLM_CONSTEXPR_MAYBE precision prec = P;
 #		endif//GLM_META_PROG_HELPERS
 
 	private:

+ 4 - 11
glm/detail/type_mat3x2.hpp

@@ -51,17 +51,10 @@ namespace glm
 		typedef T value_type;
 
 #		ifdef GLM_META_PROG_HELPERS
-#			if GLM_HAS_CONSTEXPR
-				static GLM_CONSTEXPR length_t components = 3;
-				static GLM_CONSTEXPR length_t cols = 2;
-				static GLM_CONSTEXPR length_t rows = 3;
-				static GLM_CONSTEXPR precision prec = P;
-#			else
-				static const length_t components = 3;
-				static const length_t cols = 2;
-				static const length_t rows = 3;
-				static const precision prec = P;
-#			endif//GLM_HAS_CONSTEXPR
+			static GLM_CONSTEXPR_MAYBE length_t components = 3;
+			static GLM_CONSTEXPR_MAYBE length_t cols = 2;
+			static GLM_CONSTEXPR_MAYBE length_t rows = 3;
+			static GLM_CONSTEXPR_MAYBE precision prec = P;
 #		endif//GLM_META_PROG_HELPERS
 
 	private:

+ 6 - 11
glm/detail/type_mat3x3.hpp

@@ -49,17 +49,12 @@ namespace glm
 		typedef tmat3x3<T, P> transpose_type;
 		typedef T value_type;
 
-#		if GLM_HAS_CONSTEXPR
-		static GLM_CONSTEXPR length_t components = 3;
-		static GLM_CONSTEXPR length_t cols = 3;
-		static GLM_CONSTEXPR length_t rows = 3;
-		static GLM_CONSTEXPR precision prec = P;
-#		else
-		static const length_t components = 3;
-		static const length_t cols = 3;
-		static const length_t rows = 3;
-		static const precision prec = P;
-#		endif
+#		ifdef GLM_META_PROG_HELPERS
+			static GLM_CONSTEXPR_MAYBE length_t components = 3;
+			static GLM_CONSTEXPR_MAYBE length_t cols = 3;
+			static GLM_CONSTEXPR_MAYBE length_t rows = 3;
+			static GLM_CONSTEXPR_MAYBE precision prec = P;
+#		endif//GLM_META_PROG_HELPERS
 
 		template <typename U, precision Q>
 		friend tvec3<U, Q> operator/(tmat3x3<U, Q> const & m, tvec3<U, Q> const & v);

+ 4 - 11
glm/detail/type_mat3x4.hpp

@@ -51,17 +51,10 @@ namespace glm
 		typedef T value_type;
 
 #		ifdef GLM_META_PROG_HELPERS
-#			if GLM_HAS_CONSTEXPR
-				static GLM_CONSTEXPR length_t components = 3;
-				static GLM_CONSTEXPR length_t cols = 4;
-				static GLM_CONSTEXPR length_t rows = 3;
-				static GLM_CONSTEXPR precision prec = P;
-#			else
-				static const length_t components = 3;
-				static const length_t cols = 4;
-				static const length_t rows = 3;
-				static const precision prec = P;
-#			endif//GLM_HAS_CONSTEXPR
+			static GLM_CONSTEXPR_MAYBE length_t components = 3;
+			static GLM_CONSTEXPR_MAYBE length_t cols = 4;
+			static GLM_CONSTEXPR_MAYBE length_t rows = 3;
+			static GLM_CONSTEXPR_MAYBE precision prec = P;
 #		endif//GLM_META_PROG_HELPERS
 
 	private:

+ 4 - 11
glm/detail/type_mat4x2.hpp

@@ -51,17 +51,10 @@ namespace glm
 		typedef T value_type;
 
 #		ifdef GLM_META_PROG_HELPERS
-#			if GLM_HAS_CONSTEXPR
-				static GLM_CONSTEXPR length_t components = 4;
-				static GLM_CONSTEXPR length_t cols = 2;
-				static GLM_CONSTEXPR length_t rows = 4;
-				static GLM_CONSTEXPR precision prec = P;
-#			else
-				static const length_t components = 4;
-				static const length_t cols = 2;
-				static const length_t rows = 4;
-				static const precision prec = P;
-#			endif//GLM_HAS_CONSTEXPR
+			static GLM_CONSTEXPR_MAYBE length_t components = 4;
+			static GLM_CONSTEXPR_MAYBE length_t cols = 2;
+			static GLM_CONSTEXPR_MAYBE length_t rows = 4;
+			static GLM_CONSTEXPR_MAYBE precision prec = P;
 #		endif//GLM_META_PROG_HELPERS
 
 	private:

+ 4 - 11
glm/detail/type_mat4x3.hpp

@@ -51,17 +51,10 @@ namespace glm
 		typedef T value_type;
 
 #		ifdef GLM_META_PROG_HELPERS
-#			if GLM_HAS_CONSTEXPR
-				static GLM_CONSTEXPR length_t components = 4;
-				static GLM_CONSTEXPR length_t cols = 3;
-				static GLM_CONSTEXPR length_t rows = 4;
-				static GLM_CONSTEXPR precision prec = P;
-#			else
-				static const length_t components = 4;
-				static const length_t cols = 3;
-				static const length_t rows = 4;
-				static const precision prec = P;
-#			endif//GLM_HAS_CONSTEXPR
+			static GLM_CONSTEXPR_MAYBE length_t components = 4;
+			static GLM_CONSTEXPR_MAYBE length_t cols = 3;
+			static GLM_CONSTEXPR_MAYBE length_t rows = 4;
+			static GLM_CONSTEXPR_MAYBE precision prec = P;
 #		endif//GLM_META_PROG_HELPERS
 
 	private:

+ 4 - 11
glm/detail/type_mat4x4.hpp

@@ -50,17 +50,10 @@ namespace glm
 		typedef T value_type;
 
 #		ifdef GLM_META_PROG_HELPERS
-#			if GLM_HAS_CONSTEXPR
-				static GLM_CONSTEXPR length_t components = 4;
-				static GLM_CONSTEXPR length_t cols = 4;
-				static GLM_CONSTEXPR length_t rows = 4;
-				static GLM_CONSTEXPR precision prec = P;
-#			else
-				static const length_t components = 4;
-				static const length_t cols = 4;
-				static const length_t rows = 4;
-				static const precision prec = P;
-#			endif//GLM_HAS_CONSTEXPR
+			static GLM_CONSTEXPR_MAYBE length_t components = 4;
+			static GLM_CONSTEXPR_MAYBE length_t cols = 4;
+			static GLM_CONSTEXPR_MAYBE length_t rows = 4;
+			static GLM_CONSTEXPR_MAYBE precision prec = P;
 #		endif//GLM_META_PROG_HELPERS
 
 		template <typename U, precision Q>

+ 2 - 7
glm/detail/type_vec1.hpp

@@ -56,13 +56,8 @@ namespace glm
 		typedef T value_type;
 
 #		ifdef GLM_META_PROG_HELPERS
-#			if GLM_HAS_CONSTEXPR
-				static GLM_CONSTEXPR length_t components = 1;
-				static GLM_CONSTEXPR precision prec = P;
-#			else
-				static const length_t components = 1;
-				static const precision prec = P;
-#			endif
+			static GLM_CONSTEXPR_MAYBE length_t components = 1;
+			static GLM_CONSTEXPR_MAYBE precision prec = P;
 #		endif//GLM_META_PROG_HELPERS
 
 		//////////////////////////////////////

+ 2 - 7
glm/detail/type_vec2.hpp

@@ -56,13 +56,8 @@ namespace glm
 		typedef T value_type;
 
 #		ifdef GLM_META_PROG_HELPERS
-#			if GLM_HAS_CONSTEXPR
-				static GLM_CONSTEXPR length_t components = 2;
-				static GLM_CONSTEXPR precision prec = P;
-#			else
-				static const length_t components = 2;
-				static const precision prec = P;
-#			endif//GLM_HAS_CONSTEXPR
+			static GLM_CONSTEXPR_MAYBE length_t components = 2;
+			static GLM_CONSTEXPR_MAYBE precision prec = P;
 #		endif//GLM_META_PROG_HELPERS
 
 		//////////////////////////////////////

+ 3 - 8
glm/detail/type_vec3.hpp

@@ -47,7 +47,7 @@ namespace glm
 {
 	template <typename T, precision P = defaultp>
 	struct tvec3
-	{	
+	{
 		//////////////////////////////////////
 		// Implementation detail
 
@@ -56,13 +56,8 @@ namespace glm
 		typedef T value_type;
 
 #		ifdef GLM_META_PROG_HELPERS
-#			if GLM_HAS_CONSTEXPR
-				static GLM_CONSTEXPR length_t components = 3;
-				static GLM_CONSTEXPR precision prec = P;
-#			else
-				static const length_t components = 3;
-				static const precision prec = P;
-#			endif//GLM_HAS_CONSTEXPR
+			static GLM_CONSTEXPR_MAYBE length_t components = 3;
+			static GLM_CONSTEXPR_MAYBE precision prec = P;
 #		endif//GLM_META_PROG_HELPERS
 
 		//////////////////////////////////////

+ 2 - 7
glm/detail/type_vec4.hpp

@@ -110,13 +110,8 @@ namespace detail
 		typedef T value_type;
 
 #		ifdef GLM_META_PROG_HELPERS
-#			if GLM_HAS_CONSTEXPR
-				static GLM_CONSTEXPR length_t components = 4;
-				static GLM_CONSTEXPR precision prec = P;
-#			else
-				static const length_t components = 4;
-				static const precision prec = P;
-#			endif//GLM_HAS_CONSTEXPR
+			static GLM_CONSTEXPR_MAYBE length_t components = 4;
+			static GLM_CONSTEXPR_MAYBE precision prec = P;
 #		endif//GLM_META_PROG_HELPERS
 
 		//////////////////////////////////////

+ 2 - 7
glm/gtc/quaternion.hpp

@@ -66,13 +66,8 @@ namespace glm
 		typedef T value_type;
 
 #		ifdef GLM_META_PROG_HELPERS
-#			if GLM_HAS_CONSTEXPR
-				static GLM_CONSTEXPR length_t components = 4;
-				static GLM_CONSTEXPR precision prec = P;
-#			else
-				static const length_t components = 4;
-				static const precision prec = P;
-#			endif//GLM_HAS_CONSTEXPR
+			static GLM_CONSTEXPR_MAYBE length_t components = 4;
+			static GLM_CONSTEXPR_MAYBE precision prec = P;
 #		endif//GLM_META_PROG_HELPERS
 
 	public:

+ 2 - 7
glm/gtx/dual_quaternion.hpp

@@ -65,13 +65,8 @@ namespace glm
 		typedef glm::tquat<T, P> part_type;
 
 #		ifdef GLM_META_PROG_HELPERS
-#			if GLM_HAS_CONSTEXPR
-				static GLM_CONSTEXPR length_t components = 8;
-				static GLM_CONSTEXPR precision prec = P;
-#			else
-				static const length_t components = 8;
-				static const precision prec = P;
-#			endif//GLM_HAS_CONSTEXPR
+			static GLM_CONSTEXPR_MAYBE length_t components = 8;
+			static GLM_CONSTEXPR_MAYBE precision prec = P;
 #		endif//GLM_META_PROG_HELPERS
 
 	public:

+ 4 - 11
glm/gtx/simd_mat4.hpp

@@ -72,17 +72,10 @@ namespace detail
 		typedef fmat4x4SIMD transpose_type;
 
 #		ifdef GLM_META_PROG_HELPERS
-#			if GLM_HAS_CONSTEXPR
-				static GLM_CONSTEXPR length_t components = 4;
-				static GLM_CONSTEXPR length_t cols = 4;
-				static GLM_CONSTEXPR length_t rows = 4;
-				static GLM_CONSTEXPR precision prec = defaultp;
-#			else
-				static const length_t components = 4;
-				static const length_t cols = 4;
-				static const length_t rows = 4;
-				static const precision prec = defaultp;
-#			endif//GLM_HAS_CONSTEXPR
+			static GLM_CONSTEXPR_MAYBE length_t components = 4;
+			static GLM_CONSTEXPR_MAYBE length_t cols = 4;
+			static GLM_CONSTEXPR_MAYBE length_t rows = 4;
+			static GLM_CONSTEXPR_MAYBE precision prec = defaultp;
 #		endif//GLM_META_PROG_HELPERS
 
 		GLM_FUNC_DECL length_t length() const;

+ 2 - 7
glm/gtx/simd_quat.hpp

@@ -77,13 +77,8 @@ namespace detail
 		typedef tquat<bool, defaultp> bool_type;
 
 #		ifdef GLM_META_PROG_HELPERS
-#			if GLM_HAS_CONSTEXPR
-				static GLM_CONSTEXPR length_t components = 4;
-				static GLM_CONSTEXPR precision prec = defaultp;
-#			else
-				static const length_t components = 4;
-				static const precision prec = defaultp;
-#			endif//GLM_HAS_CONSTEXPR
+			static GLM_CONSTEXPR_MAYBE length_t components = 4;
+			static GLM_CONSTEXPR_MAYBE precision prec = defaultp;
 #		endif//GLM_META_PROG_HELPERS
 
 #ifdef GLM_SIMD_ENABLE_XYZW_UNION

+ 2 - 7
glm/gtx/simd_vec4.hpp

@@ -100,13 +100,8 @@ namespace detail
 		typedef tvec4<bool, highp> bool_type;
 
 #		ifdef GLM_META_PROG_HELPERS
-#			if GLM_HAS_CONSTEXPR
-				static GLM_CONSTEXPR length_t components = 4;
-				static GLM_CONSTEXPR precision prec = defaultp;
-#			else
-				static const length_t components = 4;
-				static const precision prec = defaultp;
-#			endif//GLM_HAS_CONSTEXPR
+			static GLM_CONSTEXPR_MAYBE length_t components = 4;
+			static GLM_CONSTEXPR_MAYBE precision prec = defaultp;
 #		endif//GLM_META_PROG_HELPERS
 
 #ifdef GLM_SIMD_ENABLE_XYZW_UNION