如何在cmake项目中使用c++20

how to use c++20 in cmake project

我想使用 c++20 中可用的 header。

我使用的是最新版本的 cmake。

我的 CMakeFiles 看起来像

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_BUILD_TYPE debug)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20")

我正在使用 clang 9 作为我的编译器。

但是我在包含时收到以下错误:

fatal error: 'format' file not found
#include <format>

我也使用了标志-std=c++2a,但没有效果。简而言之,我觉得我在这里错过了一些重要的东西。 我对 cmake 有点陌生,有什么帮助吗?

根据 cppreference 上的 C++ compiler support page (archive),none 的主流编译器目前支持 C++20 <format> 功能。

因此,您目前无法使用 #include <format>。现在考虑使用 {fmt} 库,C++20 <format> 库基于它。以安全高效着称。