]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: upgrade CMAKE_CXX_STANDARD from 20 to 23 64426/head
authorKefu Chai <tchaikov@gmail.com>
Wed, 9 Jul 2025 05:16:36 +0000 (13:16 +0800)
committerKefu Chai <tchaikov@gmail.com>
Wed, 9 Jul 2025 05:16:36 +0000 (13:16 +0800)
Adopt C++23 to leverage new standard library features and reduce
dependencies on third-party implementations:

Standard library improvements:
- std::expected<> replaces third-party implementation at src/include/expected.hpp
- std::flat_map/std::flat_set replace boost alternatives
- std::stacktrace replaces homebrew implementation at src/common/BackTrace.h

Language improvements:
- Deducing this enables elimination of code duplication

Benefits:
- Reduced maintenance overhead
- Fewer third-party dependencies
- Simplified codebase

This upgrade is supported by our migration to clang-19 (0e5a51b6) and
libstdc++ from GCC-11, which provide sufficient C++23 feature coverage
for our needs.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
src/CMakeLists.txt

index fc5b03e93564d00fd014a85db34adbd3a53cd9bf..88fd41b9640415e77c4e71e3f5f568fd8403e555 100644 (file)
@@ -241,8 +241,8 @@ if(HAVE_INTEL)
   endif()
 endif()
 
-# require c++20
-set(CMAKE_CXX_STANDARD 20)
+# require c++23
+set(CMAKE_CXX_STANDARD 23)
 set(CMAKE_CXX_EXTENSIONS OFF)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 set(CMAKE_C_STANDARD 99)