diff --git a/Modules/CMakeCXXCompilerId.cpp.in b/Modules/CMakeCXXCompilerId.cpp.in index 4d78c2abf8..2e08785004 100644 --- a/Modules/CMakeCXXCompilerId.cpp.in +++ b/Modules/CMakeCXXCompilerId.cpp.in @@ -63,7 +63,9 @@ char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; # define CXX_STD __cplusplus # endif #elif defined(__NVCOMPILER) -# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init) +# if __cplusplus > CXX_STD_20 && defined(__cpp_pp_embed) +# define CXX_STD /*CXX_STD_26*/ (CXX_STD_23 + 1) +# elif __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init) # define CXX_STD CXX_STD_20 # else # define CXX_STD __cplusplus diff --git a/Tests/CompileFeatures/cxx_std.h b/Tests/CompileFeatures/cxx_std.h index f17b683b61..c9d9ecfdcc 100644 --- a/Tests/CompileFeatures/cxx_std.h +++ b/Tests/CompileFeatures/cxx_std.h @@ -28,7 +28,9 @@ # define CXX_STD __cplusplus # endif #elif defined(__NVCOMPILER) -# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init) +# if __cplusplus > CXX_STD_20 && defined(__cpp_pp_embed) +# define CXX_STD /*CXX_STD_26*/ (CXX_STD_23 + 1) +# elif __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init) # define CXX_STD CXX_STD_20 # else # define CXX_STD __cplusplus