Merge topic 'msvc-c++23' into release-4.0

b3f1c60aff MSVC: Use -std:c++23preview flag for C++23 when available
1b4a802413 MSVC: Split C++23 flag selection into dedicated block

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10462
This commit is contained in:
Brad King 2025-03-13 13:40:26 +00:00 committed by Kitware Robot
commit 5cfb301524
2 changed files with 18 additions and 3 deletions

View File

@ -35,15 +35,23 @@ if ((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.0.24215.1 AND
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.29.30129)
set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std:c++20")
set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std:c++20")
set(CMAKE_CXX23_STANDARD_COMPILE_OPTION "-std:c++latest")
set(CMAKE_CXX23_EXTENSION_COMPILE_OPTION "-std:c++latest")
set(CMAKE_CXX_STANDARD_LATEST 23)
set(CMAKE_CXX_STANDARD_LATEST 20)
elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.12.25835)
set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std:c++latest")
set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std:c++latest")
set(CMAKE_CXX_STANDARD_LATEST 20)
endif()
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.43.34808)
set(CMAKE_CXX23_STANDARD_COMPILE_OPTION "-std:c++23preview")
set(CMAKE_CXX23_EXTENSION_COMPILE_OPTION "-std:c++23preview")
set(CMAKE_CXX_STANDARD_LATEST 23)
elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.29.30129)
set(CMAKE_CXX23_STANDARD_COMPILE_OPTION "-std:c++latest")
set(CMAKE_CXX23_EXTENSION_COMPILE_OPTION "-std:c++latest")
set(CMAKE_CXX_STANDARD_LATEST 23)
endif()
__compiler_check_default_language_standard(CXX 19.0 14)
elseif (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0)

View File

@ -496,6 +496,13 @@
"value": "stdcpp20",
"flags": []
},
{
"name": "LanguageStandard",
"switch": "std:c++23preview",
"comment": "Preview - ISO C++23 Standard",
"value": "stdcpp23",
"flags": []
},
{
"name": "LanguageStandard",
"switch": "std:c++latest",