<分区>
每次我使用 C++11 提供的新类之一(如 chrono.h)并使用 GCC 编译它时,它都会警告我 C++11 函数仍处于试验阶段,必须使用特殊标志启用才能使用。
写这篇文章的时候已经是 2014 年底了,为什么 GCC 在至少 3.5 年后仍然将 C++11 标记为“实验性”,这么多年过去了,C++11 为我们提供的一些功能仍然存在没有实现?
如果是这样,那怎么会呢?
代码:
#include <chrono>
#include <thread>
int main()
{
std::this_thread::sleep_for(std::chrono::milliseconds(3000));
return 0;
}
编译器行:
g++ Source.cpp -o test.exe
海湾合作委员会版本: g++(x86_64-posix-seh-rev0,由 MinGW-W64 项目构建)4.9.2 版权所有 (C) 2014 Free Software Foundation, Inc.
海湾合作委员会吐出:
C:/Program Files/mingw-w64/x86_64-4.9.2-posix-seh-rt_v3-rev0/mingw64/x86_64-w64-mingw32/include/c++/bits/c++0x_warning.h:32: 2: error: #error 此文件需要 G 编译器和库支持 ISO C++ 2011 标准。此支持目前处于试验阶段,必须使用 -std=c++11 或 -std=gnu++11 编译器选项启用。