现在,支持新的日历和时区功能已发布GCC11,我正在尝试在我的代码中使用这些功能。 以下最小示例:
#include <chrono>
#include <iostream>
int main()
{
using namespace std;
cout << chrono::utc_clock::now() << endl;
return EXIT_SUCCESS;
}
使用以下内容进行组合:
> /usr/local/gcc-11.1.0/bin/g++-11.1 -std=c++-20 main.cpp
为以下错误:
main.cpp: In function ‘int main()’:
main.cpp:8:36: error: incomplete type ‘std::chrono::utc_clock’ used in
nested name specifier
8 | cout << chrono::utc_clock::now() << endl;
|
我还尝试过明确链接与新建的GCC 11版本的Libstdc ++。A:
/usr/local/gcc-11.1.0/bin/g++-11.1 -std=c++20 -L/usr/local/gcc-11.1.0/lib -lstdc++ main.cpp
但我收到相同的错误消息。
一些额外信息:> /usr/local/gcc-11.1.0/bin/g++-11.1 --version
为以下输出:
g++-11.1 (GCC) 12.0.0 20210427 (experimental)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
这对我来说是意外的,因为我希望看到11.1。我在MacOS上构建了此版本,我的
clang++
版本为12.0.5。这是预期的吗?这可能是问题的潜在来源吗?
,也显示了对C ++的编译器支持20个标准库功能的网站。 lastly,我从源构建了GCC 11,使用this视频作为参考。
此时,只有部分C ++ 20 Chrono支持在GCC中。此事是libstdc ++源代码的当前状态。这显示了一个简单的远期声明,也没有定义,这与您看到的错误消息一致。 i
iam看到对chrono
的更多支持,包括在utc_clock
和
file_clock
之间转换的低级API。 这是一个重要的补充。
在ADDICANTION上,我看到C ++20(例如file_clock::time_point