29 #ifndef glm_core_detail
30 #define glm_core_detail
34 #if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L))
43 #if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available
46 #elif(GLM_COMPILER & GLM_COMPILER_VC)
47 typedef signed __int64
sint64;
48 typedef unsigned __int64
uint64;
49 #elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC | GLM_COMPILER_CLANG))
50 __extension__
typedef signed long long sint64;
51 __extension__
typedef unsigned long long uint64;
52 #elif(GLM_COMPILER & GLM_COMPILER_BC)
55 #else//unknown compiler
56 typedef signed long long sint64;
63 template<
typename F,
typename T>
73 template<
typename F,
typename T>
174 template <
typename T>
184 #define GLM_DETAIL_IS_INT(T) \
198 template <
typename T>
208 #define GLM_DETAIL_IS_UINT(T) \
224 template <
typename T>
234 #define GLM_DETAIL_IS_FLOAT(T) \
253 template <
typename T>
276 template <
typename T>
286 # define GLM_DETAIL_IS_VECTOR(TYPE) \
287 template <typename T> \
288 struct is_vector<TYPE<T> > \
290 enum is_vector_enum \
300 template <
typename T>
310 #define GLM_DETAIL_IS_MATRIX(T) \
314 enum is_matrix_enum \
324 template <
typename T>
366 template <
typename T>
441 #if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2005))
442 # define GLM_DEPRECATED __declspec(deprecated)
443 # define GLM_ALIGN(x) __declspec(align(x))
444 # define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct
445 # define GLM_RESTRICT __declspec(restrict)
446 # define GLM_RESTRICT_VAR __restrict
447 # define GLM_CONSTEXPR
448 #elif(GLM_COMPILER & GLM_COMPILER_INTEL)
449 # define GLM_DEPRECATED
450 # define GLM_ALIGN(x) __declspec(align(x))
451 # define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct
452 # define GLM_RESTRICT
453 # define GLM_RESTRICT_VAR __restrict
454 # define GLM_CONSTEXPR
455 #elif(((GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC)) && (GLM_COMPILER >= GLM_COMPILER_GCC31)) || (GLM_COMPILER & GLM_COMPILER_CLANG))
456 # define GLM_DEPRECATED __attribute__((__deprecated__))
457 # define GLM_ALIGN(x) __attribute__((aligned(x)))
458 # define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))
459 # if(GLM_COMPILER >= GLM_COMPILER_GCC33)
460 # define GLM_RESTRICT __restrict__
461 # define GLM_RESTRICT_VAR __restrict__
463 # define GLM_RESTRICT
464 # define GLM_RESTRICT_VAR
466 # define GLM_RESTRICT __restrict__
467 # define GLM_RESTRICT_VAR __restrict__
468 # if((GLM_COMPILER >= GLM_COMPILER_GCC47) && ((GLM_LANG & GLM_LANG_CXX0X) == GLM_LANG_CXX0X))
469 # define GLM_CONSTEXPR constexpr
471 # define GLM_CONSTEXPR
474 # define GLM_DEPRECATED
476 # define GLM_ALIGNED_STRUCT(x)
477 # define GLM_RESTRICT
478 # define GLM_RESTRICT_VAR
479 # define GLM_CONSTEXPR
482 #endif//glm_core_detail
Definition: _detail.hpp:369
Definition: _detail.hpp:254
is_bool_enum
Definition: _detail.hpp:256
unsigned long long uint64
Definition: _detail.hpp:57
Definition: _detail.hpp:229
signed long long sint64
Definition: _detail.hpp:41
detail::int64 int64_t
Definition: type_precision.hpp:94
Definition: _detail.hpp:305
uif32 uif
Definition: _detail.hpp:169
Definition: _detail.hpp:230
Definition: _detail.hpp:301
GLM_FUNC_QUALIFIER uif64(uint64 i)
Definition: _detail.hpp:161
Definition: _detail.hpp:38
signed short int16
Definition: _detail.hpp:340
double float64
Definition: _detail.hpp:351
Definition: _detail.hpp:306
unsigned int i
Definition: _detail.hpp:148
detail::half half
Definition: half_float.hpp:357
uint64 i
Definition: _detail.hpp:166
Definition: _detail.hpp:225
unsigned int uint32
Definition: _detail.hpp:346
Definition: _swizzle.hpp:43
Definition: _detail.hpp:258
signed int int32
Definition: _detail.hpp:341
Definition: _detail.hpp:367
Definition: _detail.hpp:362
GLM_FUNC_QUALIFIER uif32()
Definition: _detail.hpp:135
GLM_FUNC_QUALIFIER uif32(float f)
Definition: _detail.hpp:139
is_float_enum
Definition: _detail.hpp:227
unsigned short uint16
Definition: _detail.hpp:345
double f
Definition: _detail.hpp:165
unsigned char uint8
Definition: _detail.hpp:344
static GLM_FUNC_QUALIFIER T apply(F functor, const T &val)
Definition: _detail.hpp:64
is_vector_enum
Definition: _detail.hpp:279
Definition: _detail.hpp:180
is_uint_enum
Definition: _detail.hpp:201
detail::uint64 uint64_t
Definition: type_precision.hpp:216
type_enum
Definition: _detail.hpp:327
GLM_FUNC_QUALIFIER uif64()
Definition: _detail.hpp:153
GLM_FUNC_QUALIFIER uif64(double f)
Definition: _detail.hpp:157
Definition: _detail.hpp:277
Definition: _detail.hpp:282
Definition: _detail.hpp:360
Definition: _detail.hpp:199
Definition: _detail.hpp:259
GLM_FUNC_QUALIFIER uif32(unsigned int i)
Definition: _detail.hpp:143
Definition: type_half.hpp:42
detail::sint64 int64
Definition: _detail.hpp:342
Definition: _detail.hpp:281
float float32
Definition: _detail.hpp:350
Definition: _detail.hpp:151
Definition: _detail.hpp:203
is_matrix_enum
Definition: _detail.hpp:303
Definition: _detail.hpp:356
Definition: _detail.hpp:175
static GLM_FUNC_QUALIFIER T apply(F, const T &val)
Definition: _detail.hpp:74
Definition: _detail.hpp:325
detail::half float16
Definition: _detail.hpp:349
Definition: _detail.hpp:133
float f
Definition: _detail.hpp:147
is_bool_enum
Definition: _detail.hpp:266
signed char int8
Definition: _detail.hpp:339
Definition: _detail.hpp:179
Definition: _detail.hpp:61
Definition: _detail.hpp:361
Definition: _detail.hpp:204
GLM_DETAIL_IS_FLOAT(detail::half)
is_int_enum
Definition: _detail.hpp:177
#define GLM_FUNC_QUALIFIER
Definition: setup.hpp:679