我如何获得 c++20 标准库?

How can I get the c++20 std lib?

如何获得 sys_seconds?我在 Ubuntu 20.04 上使用 /usr/bin/c++ 来编译以下片段:

RCLCPP_WARN_STREAM(get_logger(), "Time: " << std::chrono::sys_seconds(time_.seconds()));

我收到以下错误:错误:‘sys_seconds’不是‘std::chrono’的成员;

c++ 输出为:

c++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0

根据:https://en.cppreference.com/w/cpp/chrono/system_clock c++20 should have a namespace sys_seconds, according to https://en.cppreference.com/w/cpp/compiler_support c++9 支持 c++20。但是当我检查文件 /usr/include/c++/9/chrono 时,我只看到 c++11 版本。我通过在 CMakeLists.txt

中设置以下行来确保我正在使用 c++20 进行编译
set(CMAKE_CXX_STANDARD 20)

如何获取丢失的 c++20 标准库?

according to https://en.cppreference.com/w/cpp/compiler_support c++9 supports c++20

链接页面并非如此。在您的系统上,c++ 默认链接到 g++。链接页面说 一些 C++20 功能在 GCC 9 中实现,而许多功能没有。

How can I get the missing c++20 std lib?

通过安装已实现该库的语言实现。