NVHPC: Add detection of C++ 26 mode

This compiler uses GCC's standard library, and so limits `__cplusplus`
to that of the GCC toolchain.  However, it defines feature macros that
we can use to distinguish this mode.
This commit is contained in:
Brad King
2026-03-31 11:11:45 -04:00
parent 5eab2214a2
commit ee9f90005b
2 changed files with 6 additions and 2 deletions

View File

@@ -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

View File

@@ -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