我尝试使用不同的编译器(包括gcc 6.1)编译以下程序:
#include <optional>
int main()
{
std::optional<int> o1;
}
输出为
main.cpp:1:20: 致命错误:optional: 没有那个文件或目录 #include optional
即使是这里提供的示例也是如此: http://en.cppreference.com/w/cpp/utility/optional/optional
为什么会这样?
我尝试使用不同的编译器(包括gcc 6.1)编译以下程序:
#include <optional>
int main()
{
std::optional<int> o1;
}
输出为
main.cpp:1:20: 致命错误:optional: 没有那个文件或目录 #include optional
即使是这里提供的示例也是如此: http://en.cppreference.com/w/cpp/utility/optional/optional
为什么会这样?
std::optional
将成为C++17标准的一部分,但如果您想在此之前使用它,则必须改用std::experimental::optional
,该选项位于头文件<experimental/optional>
中。
目前还在实验阶段(TS):
#include <experimental/optional>
example:
http://coliru.stacked-crooked.com/a/09ab8d1e51680a79
#include <experimental/optional>
#include <iostream>
int main()
{
std::experimental::optional<int> o1;
}