From d01c9a429b25fcea8f5b77547adc23f3fede0471 Mon Sep 17 00:00:00 2001 From: Arha Gatram Date: Wed, 10 Jun 2026 15:53:55 +0000 Subject: [PATCH] CUDA: Add support for cuda_std_23 for nvcc 13.3+ CUDA 13.3 has been released with support for `-std=c++23`. --- Help/release/4.4.rst | 6 ++++++ Modules/Compiler/NVIDIA.cmake | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/Help/release/4.4.rst b/Help/release/4.4.rst index 073125cb2f..b9c1e0f731 100644 --- a/Help/release/4.4.rst +++ b/Help/release/4.4.rst @@ -92,6 +92,12 @@ Generators name, their dependencies are merged into one ``test_prep/`` target. +Languages +--------- + +* CUDA language level 23 (corresponding to C++ 23) is now supported with + NVCC 13.3 and above. + Compilers --------- diff --git a/Modules/Compiler/NVIDIA.cmake b/Modules/Compiler/NVIDIA.cmake index 0d0f03ad00..5bf7044159 100644 --- a/Modules/Compiler/NVIDIA.cmake +++ b/Modules/Compiler/NVIDIA.cmake @@ -46,6 +46,14 @@ macro(__compiler_nvidia_cxx_standards lang) set(CMAKE_${lang}_STANDARD_LATEST 20) endif() endif() + + if (NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 13.3) + if(CMAKE_${lang}_SIMULATE_VERSION VERSION_GREATER_EQUAL 19.29.30129) + set(CMAKE_${lang}23_STANDARD_COMPILE_OPTION "-std=c++23") + set(CMAKE_${lang}23_EXTENSION_COMPILE_OPTION "-std=c++23") + set(CMAKE_${lang}_STANDARD_LATEST 23) + endif() + endif() else() set(CMAKE_${lang}03_STANDARD_COMPILE_OPTION "") set(CMAKE_${lang}03_EXTENSION_COMPILE_OPTION "") @@ -75,6 +83,12 @@ macro(__compiler_nvidia_cxx_standards lang) set(CMAKE_${lang}20_EXTENSION_COMPILE_OPTION "-std=c++20") set(CMAKE_${lang}_STANDARD_LATEST 20) endif() + + if (NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 13.3) + set(CMAKE_${lang}23_STANDARD_COMPILE_OPTION "-std=c++23") + set(CMAKE_${lang}23_EXTENSION_COMPILE_OPTION "-std=c++23") + set(CMAKE_${lang}_STANDARD_LATEST 23) + endif() endif() __compiler_check_default_language_standard(${lang} 6.0 03)