Add C++ 23 detection

This commit is contained in:
christophe
2025-10-21 11:20:57 -06:00
committed by Christophe
parent 24a14718fe
commit 9ecd2c0849

View File

@@ -69,8 +69,9 @@
#define GLM_LANG_CXX14_FLAG (1 << 5)
#define GLM_LANG_CXX17_FLAG (1 << 6)
#define GLM_LANG_CXX20_FLAG (1 << 7)
#define GLM_LANG_CXXMS_FLAG (1 << 8)
#define GLM_LANG_CXXGNU_FLAG (1 << 9)
#define GLM_LANG_CXX23_FLAG (1 << 8)
#define GLM_LANG_CXXMS_FLAG (1 << 9)
#define GLM_LANG_CXXGNU_FLAG (1 << 10)
#define GLM_LANG_CXX98 GLM_LANG_CXX98_FLAG
#define GLM_LANG_CXX03 (GLM_LANG_CXX98 | GLM_LANG_CXX03_FLAG)
@@ -79,6 +80,7 @@
#define GLM_LANG_CXX14 (GLM_LANG_CXX11 | GLM_LANG_CXX14_FLAG)
#define GLM_LANG_CXX17 (GLM_LANG_CXX14 | GLM_LANG_CXX17_FLAG)
#define GLM_LANG_CXX20 (GLM_LANG_CXX17 | GLM_LANG_CXX20_FLAG)
#define GLM_LANG_CXX23 (GLM_LANG_CXX20 | GLM_LANG_CXX23_FLAG)
#define GLM_LANG_CXXMS GLM_LANG_CXXMS_FLAG
#define GLM_LANG_CXXGNU GLM_LANG_CXXGNU_FLAG
@@ -113,7 +115,11 @@
# define GLM_LANG_PLATFORM 0
# endif
# if __cplusplus > 201703L || GLM_LANG_PLATFORM > 201703L
# if __cplusplus > 202302L || GLM_LANG_PLATFORM > 202302L
# define GLM_LANG (GLM_LANG_CXX23 | GLM_LANG_EXT)
# elif __cplusplus == 202302L || GLM_LANG_PLATFORM == 202302L
# define GLM_LANG (GLM_LANG_CXX23 | GLM_LANG_EXT)
# elif __cplusplus == 202002L || GLM_LANG_PLATFORM == 202002L
# define GLM_LANG (GLM_LANG_CXX20 | GLM_LANG_EXT)
# elif __cplusplus == 201703L || GLM_LANG_PLATFORM == 201703L
# define GLM_LANG (GLM_LANG_CXX17 | GLM_LANG_EXT)
@@ -625,7 +631,11 @@ namespace detail
# pragma message ("GLM: version " GLM_STR(GLM_VERSION_MAJOR) "." GLM_STR(GLM_VERSION_MINOR) "." GLM_STR(GLM_VERSION_PATCH))
// Report C++ language
# if (GLM_LANG & GLM_LANG_CXX20_FLAG) && (GLM_LANG & GLM_LANG_EXT)
# if (GLM_LANG & GLM_LANG_CXX23_FLAG) && (GLM_LANG & GLM_LANG_EXT)
# pragma message("GLM: C++ 23 with extensions")
# elif (GLM_LANG & GLM_LANG_CXX23_FLAG)
# pragma message("GLM: C++ 23")
# elif (GLM_LANG & GLM_LANG_CXX20_FLAG) && (GLM_LANG & GLM_LANG_EXT)
# pragma message("GLM: C++ 20 with extensions")
# elif (GLM_LANG & GLM_LANG_CXX20_FLAG)
# pragma message("GLM: C++ 20")