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