C++14 TS功能和GCC 4.8

7
我想尝试一些新功能,这些新功能将在C++2014 修订版中推出,例如std::make_uniquestd::filesystem功能。我使用的是ubuntu 14.04和GCC/G++ 4.8(已安装libstdc++-4.8-dev),并设置了标志-std=c++1y。但是,包括<tr1/memory>时没有std::make_unique,也没有<experimental/...>头文件。 我需要做什么才能使用其中一些新功能呢?
谢谢!
1个回答

14

<tr1/memory>不是C++14标准头文件,正确的应该是<memory>。对于<dynarray>同样如此。

然而,在GCC 4.8中都不受支持。您需要升级到GCC 4.9或clang 5。

C++1y在GCC编译器中的支持状态可以在语言特性页面上查看,库的支持情况可以在库支持状态页面上查看。


我已经尝试过了,但是我没有任何<dynarray>头文件(我猜测是因为它不会出现在C++14中)。但是,当尝试使用std::make_unique时,仍然使用<memory>失败。那么我将尝试clang或g++4.9。如何使用一些TS功能,例如std::file_system,或者编译器编写者还没有实现任何功能,您有什么建议吗? - Athanase
1
@Athanase g++ 4.9没有实现std::dynarray,但是<memory>中应该有std::make_unique可用。它在4.8版本中不可用。<file_system>中的任何内容都还没有在g++中实现。在g++ 4.9中实现的唯一TS功能是std::optionalstd::string_view - Morwenn
clang只是一个编译器,标准库是随gcc、xcode或visual studio一起提供的。LLVM项目拥有一个新的c++库子项目,但目前主要针对Linux或Mac OSX。 - galop1n
@galop1n 是的,我有点混淆了它们,因为我使用 clang 和 libc++。 - Konrad Rudolph
1
gcc-4.10 刚刚分支了。我相信 <dynarray> 将在一个月或两个月内到来。 <filesystem> 也是如此。 gcc-4.9 有 <optional> 和 <string_view>,以及库中的大多数较小更改。至于基础语言,gcc-4.9 具有自动函数返回类型推断、二进制字面量和数字分隔符。 - emsr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接