Merge pull request #10655 from Morph1984/msvc-cxx20

CMakeLists: Force C++20 on MSVC due to conflicts with C++23 modules
This commit is contained in:
liamwhite 2023-06-07 14:04:25 -04:00 committed by GitHub
commit 86cbd867d2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 3 deletions

View file

@ -255,7 +255,7 @@ endif()
# boost asio's concept usage doesn't play nicely with some compilers yet. # boost asio's concept usage doesn't play nicely with some compilers yet.
add_definitions(-DBOOST_ASIO_DISABLE_CONCEPTS) add_definitions(-DBOOST_ASIO_DISABLE_CONCEPTS)
if (MSVC) if (MSVC)
add_compile_options($<$<COMPILE_LANGUAGE:CXX>:/std:c++latest>) add_compile_options($<$<COMPILE_LANGUAGE:CXX>:/std:c++20>)
# boost still makes use of deprecated result_of. # boost still makes use of deprecated result_of.
add_definitions(-D_HAS_DEPRECATED_RESULT_OF) add_definitions(-D_HAS_DEPRECATED_RESULT_OF)

View file

@ -43,7 +43,7 @@ if (MSVC)
/Zo /Zo
/permissive- /permissive-
/EHsc /EHsc
/std:c++latest /std:c++20
/utf-8 /utf-8
/volatile:iso /volatile:iso
/Zc:externConstexpr /Zc:externConstexpr
@ -51,8 +51,10 @@ if (MSVC)
/Zc:throwingNew /Zc:throwingNew
/GT /GT
# Modules
/experimental:module- # Disable module support explicitly due to conflicts with precompiled headers
# External headers diagnostics # External headers diagnostics
/experimental:external # Enables the external headers options. This option isn't required in Visual Studio 2019 version 16.10 and later
/external:anglebrackets # Treats all headers included by #include <header>, where the header file is enclosed in angle brackets (< >), as external headers /external:anglebrackets # Treats all headers included by #include <header>, where the header file is enclosed in angle brackets (< >), as external headers
/external:W0 # Sets the default warning level to 0 for external headers, effectively turning off warnings for external headers /external:W0 # Sets the default warning level to 0 for external headers, effectively turning off warnings for external headers