繁体   English   中英

我如何获得 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++ output 是:

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

根据: https://en.cppreference.com/w/cpp/chrono/system_clock c++20 应该有一个命名空间 sys_seconds,根据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 标准库?

根据https://en.cppreference.com/w/cpp/compiler_support c++9 支持 c++20

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

我怎样才能得到丢失的 c++20 标准库?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM