Как использовать C ++ 20 в проекте Cmake - PullRequest
2 голосов
/ 22 февраля 2020

Я хочу использовать заголовок, доступный в c ++ 20.

Я использую самую последнюю версию 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, любая помощь?

1 Ответ

4 голосов
/ 22 февраля 2020

Согласно странице поддержки C ++ ( archive ) на cppreference, ни один из основных компиляторов в настоящее время не поддерживает функции C ++ 20 <format>.

enter image description here

Поэтому вы не можете использовать #include <format>. Попробуйте использовать библиотеку {fmt} , на которой основана библиотека C ++ 20 <format>. Он славится своей высокой безопасностью и эффективностью.

...