diff options
| author | Brad King <brad.king@kitware.com> | 2024-04-02 20:50:51 (GMT) |
|---|---|---|
| committer | Brad King <brad.king@kitware.com> | 2024-04-04 19:13:17 (GMT) |
| commit | b9d4db7098898dbaf9dd29f0fbcc166af0e5154e (patch) | |
| tree | 7b886252956a24fbb7aaaf58a2492f3a0fc66226 /Tests/CompileFeatures/default_dialect.cpp | |
| parent | ae18811f2e1e12de8c2dc9c1168de1859c38dca2 (diff) | |
| download | CMake-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.cpp | 28 |
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 |
