summaryrefslogtreecommitdiffstats
path: root/Tests/CompileFeatures/default_dialect.cpp
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2024-04-02 20:50:51 (GMT)
committerBrad King <brad.king@kitware.com>2024-04-04 19:13:17 (GMT)
commitb9d4db7098898dbaf9dd29f0fbcc166af0e5154e (patch)
tree7b886252956a24fbb7aaaf58a2492f3a0fc66226 /Tests/CompileFeatures/default_dialect.cpp
parentae18811f2e1e12de8c2dc9c1168de1859c38dca2 (diff)
downloadCMake-b9d4db7098898dbaf9dd29f0fbcc166af0e5154e.zip
CMake-b9d4db7098898dbaf9dd29f0fbcc166af0e5154e.tar.gz
CMake-b9d4db7098898dbaf9dd29f0fbcc166af0e5154e.tar.bz2
CompilerId: Clarify C and C++ standard level detection
Use named constants. Regularize comparison patterns.
Diffstat (limited to 'Tests/CompileFeatures/default_dialect.cpp')
-rw-r--r--Tests/CompileFeatures/default_dialect.cpp28
1 files changed, 18 insertions, 10 deletions
diff --git a/Tests/CompileFeatures/default_dialect.cpp b/Tests/CompileFeatures/default_dialect.cpp
index bd504ff..88cc12d 100644
--- a/Tests/CompileFeatures/default_dialect.cpp
+++ b/Tests/CompileFeatures/default_dialect.cpp
@@ -2,15 +2,23 @@
template <long l>
struct Outputter;
-#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L
+#define CXX_STD_98 199711L
+#define CXX_STD_11 201103L
+#define CXX_STD_14 201402L
+#define CXX_STD_17 201703L
+#define CXX_STD_20 202002L
+#define CXX_STD_23 202302L
+
+#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && \
+ _MSVC_LANG <= CXX_STD_14
# if defined(__INTEL_CXX11_MODE__)
# if defined(__cpp_aggregate_nsdmi)
-# define CXX_STD 201402L
+# define CXX_STD CXX_STD_14
# else
-# define CXX_STD 201103L
+# define CXX_STD CXX_STD_11
# endif
# else
-# define CXX_STD 199711L
+# define CXX_STD CXX_STD_98
# endif
#elif defined(_MSC_VER) && defined(_MSVC_LANG)
# define CXX_STD _MSVC_LANG
@@ -19,30 +27,30 @@ struct Outputter;
#endif
#if DEFAULT_CXX23
-# if CXX_STD <= 202002L
+# if CXX_STD <= CXX_STD_20
Outputter<CXX_STD> o;
# endif
#elif DEFAULT_CXX20
-# if CXX_STD <= 201703L
+# if CXX_STD <= CXX_STD_17
Outputter<CXX_STD> o;
# endif
#elif DEFAULT_CXX17
-# if CXX_STD <= 201402L
+# if CXX_STD <= CXX_STD_14
Outputter<CXX_STD> o;
# endif
#elif DEFAULT_CXX14
-# if CXX_STD != 201402L
+# if CXX_STD <= CXX_STD_11
Outputter<CXX_STD> o;
# endif
#elif DEFAULT_CXX11
-# if CXX_STD != 201103L
+# if CXX_STD != CXX_STD_11
Outputter<CXX_STD> o;
# endif
#else
# if !DEFAULT_CXX98
# error Buildsystem error
# endif
-# if CXX_STD != 199711L && CXX_STD != 1 && \
+# if CXX_STD != CXX_STD_98 && CXX_STD != 1 && \
!defined(__GXX_EXPERIMENTAL_CXX0X__)
Outputter<CXX_STD> o;
# endif