由于我正在开发一个将于 2014 年左右公开发布的 C++ 库,因此我目前需要做出设计选择。将与 C++14 一起发布的非常有用的工具之一是 std::optional
。我想知道 g++/libstdc++
的版本我可以使用 -std=c++1y
。
最佳答案
更新(2016 年 10 月): std::optional
不在最终的 C++14 标准中,因此它永远不会与 -std=c++1y
一起使用.相反,GCC 4.9 包含 std::experimental::optional
可用 -std=c++1y
.
GCC 7 将包括 std::optional
与 -std=c++1z
即 C++17。
原始答案(2013 年 6 月):
目前未实现,见 http://gcc.gnu.org/ml/libstdc++/2013-06/msg00032.html了解 GCC 主干中 C++14 功能的状态。
何时实现取决于某人何时自愿完成这项工作,因此无法预测。
我会预计它将为 GCC 4.9 完成,它应该在 C++14 标准之前不久发布,但不能保证。不过,它不太可能被添加到 GCC 4.8,因为它已经发布并且与 GCC 4.9(即 GCC 颠覆主干)不同的是 __cplusplus
宏具有相同的值 -std=c++11
和 -std=c++1y
因此对于 GCC 4.8,无法选择性地启用 -std=c++1y
的功能。仅限。
关于c++ - g++/libstdc++中std::optional的实现状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17013708/