Browse Source

Fixed aligned type build on Visual C++ 2013 and older compiler #539

Christophe Riccio 9 years ago
parent
commit
ebafd8e82d
1 changed files with 12 additions and 2 deletions
  1. 12 2
      glm/detail/type_vec.hpp

+ 12 - 2
glm/detail/type_vec.hpp

@@ -9,6 +9,15 @@
 namespace glm{
 namespace detail
 {
+	template<std::size_t N> struct aligned {};
+	template<> GLM_ALIGNED_STRUCT(1) aligned<1>{};
+	template<> GLM_ALIGNED_STRUCT(2) aligned<2>{};
+	template<> GLM_ALIGNED_STRUCT(4) aligned<4>{};
+	template<> GLM_ALIGNED_STRUCT(8) aligned<8>{};
+	template<> GLM_ALIGNED_STRUCT(16) aligned<16>{};
+	template<> GLM_ALIGNED_STRUCT(32) aligned<32>{};
+	template<> GLM_ALIGNED_STRUCT(64) aligned<64>{};
+
 	template <typename T, std::size_t size, bool aligned>
 	struct storage
 	{
@@ -20,9 +29,10 @@ namespace detail
 	template <typename T, std::size_t size>
 	struct storage<T, size, true>
 	{
-		typedef GLM_ALIGNED_STRUCT(size) type {
+		struct type : aligned<size>
+		{
 			uint8 data[size];
-		} type;
+		};
 	};
 
 #	if GLM_ARCH & GLM_ARCH_SSE2_BIT