29 #ifndef glm_core_features
30 #define glm_core_features
278 #if(GLM_COMPILER & GLM_COMPILER_GCC)
280 # if(GLM_COMPILER >= GLM_COMPILER_GCC43)
281 # define GLM_CXX11_STATIC_ASSERT
284 #elif(GLM_COMPILER & GLM_COMPILER_CLANG)
285 # if(__has_feature(cxx_exceptions))
286 # define GLM_CXX98_EXCEPTIONS
289 # if(__has_feature(cxx_rtti))
290 # define GLM_CXX98_RTTI
293 # if(__has_feature(cxx_access_control_sfinae))
294 # define GLM_CXX11_ACCESS_CONTROL_SFINAE
297 # if(__has_feature(cxx_alias_templates))
298 # define GLM_CXX11_ALIAS_TEMPLATE
301 # if(__has_feature(cxx_alignas))
302 # define GLM_CXX11_ALIGNAS
305 # if(__has_feature(cxx_attributes))
306 # define GLM_CXX11_ATTRIBUTES
309 # if(__has_feature(cxx_constexpr))
310 # define GLM_CXX11_CONSTEXPR
313 # if(__has_feature(cxx_decltype))
314 # define GLM_CXX11_DECLTYPE
317 # if(__has_feature(cxx_default_function_template_args))
318 # define GLM_CXX11_DEFAULT_FUNCTION_TEMPLATE_ARGS
321 # if(__has_feature(cxx_defaulted_functions))
322 # define GLM_CXX11_DEFAULTED_FUNCTIONS
325 # if(__has_feature(cxx_delegating_constructors))
326 # define GLM_CXX11_DELEGATING_CONSTRUCTORS
329 # if(__has_feature(cxx_deleted_functions))
330 # define GLM_CXX11_DELETED_FUNCTIONS
333 # if(__has_feature(cxx_explicit_conversions))
334 # define GLM_CXX11_EXPLICIT_CONVERSIONS
337 # if(__has_feature(cxx_generalized_initializers))
338 # define GLM_CXX11_GENERALIZED_INITIALIZERS
341 # if(__has_feature(cxx_implicit_moves))
342 # define GLM_CXX11_IMPLICIT_MOVES
345 # if(__has_feature(cxx_inheriting_constructors))
346 # define GLM_CXX11_INHERITING_CONSTRUCTORS
349 # if(__has_feature(cxx_inline_namespaces))
350 # define GLM_CXX11_INLINE_NAMESPACES
353 # if(__has_feature(cxx_lambdas))
354 # define GLM_CXX11_LAMBDAS
357 # if(__has_feature(cxx_local_type_template_args))
358 # define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS
361 # if(__has_feature(cxx_noexcept))
362 # define GLM_CXX11_NOEXCEPT
365 # if(__has_feature(cxx_nonstatic_member_init))
366 # define GLM_CXX11_NONSTATIC_MEMBER_INIT
369 # if(__has_feature(cxx_nullptr))
370 # define GLM_CXX11_NULLPTR
373 # if(__has_feature(cxx_override_control))
374 # define GLM_CXX11_OVERRIDE_CONTROL
377 # if(__has_feature(cxx_reference_qualified_functions))
378 # define GLM_CXX11_REFERENCE_QUALIFIED_FUNCTIONS
381 # if(__has_feature(cxx_range_for))
382 # define GLM_CXX11_RANGE_FOR
385 # if(__has_feature(cxx_raw_string_literals))
386 # define GLM_CXX11_RAW_STRING_LITERALS
389 # if(__has_feature(cxx_rvalue_references))
390 # define GLM_CXX11_RVALUE_REFERENCES
393 # if(__has_feature(cxx_static_assert))
394 # define GLM_CXX11_STATIC_ASSERT
397 # if(__has_feature(cxx_auto_type))
398 # define GLM_CXX11_AUTO_TYPE
401 # if(__has_feature(cxx_strong_enums))
402 # define GLM_CXX11_STRONG_ENUMS
405 # if(__has_feature(cxx_trailing_return))
406 # define GLM_CXX11_TRAILING_RETURN
409 # if(__has_feature(cxx_unicode_literals))
410 # define GLM_CXX11_UNICODE_LITERALS
413 # if(__has_feature(cxx_unrestricted_unions))
414 # define GLM_CXX11_UNRESTRICTED_UNIONS
417 # if(__has_feature(cxx_user_literals))
418 # define GLM_CXX11_USER_LITERALS
421 # if(__has_feature(cxx_variadic_templates))
422 # define GLM_CXX11_VARIADIC_TEMPLATES
425 #endif//(GLM_COMPILER & GLM_COMPILER_CLANG)
427 #endif//glm_core_features