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

This commit is contained in:
Christophe Riccio 2016-08-11 00:41:38 +02:00
parent 37ab3dfd29
commit ebafd8e82d

View File

@ -9,6 +9,15 @@
namespace glm{ namespace glm{
namespace detail 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> template <typename T, std::size_t size, bool aligned>
struct storage struct storage
{ {
@ -20,9 +29,10 @@ namespace detail
template <typename T, std::size_t size> template <typename T, std::size_t size>
struct storage<T, size, true> struct storage<T, size, true>
{ {
typedef GLM_ALIGNED_STRUCT(size) type { struct type : aligned<size>
{
uint8 data[size]; uint8 data[size];
} type; };
}; };
# if GLM_ARCH & GLM_ARCH_SSE2_BIT # if GLM_ARCH & GLM_ARCH_SSE2_BIT