std 可选:没有这样的文件或目录

std optional: No such file or directory

我尝试用不同的编译器(包括 gcc 6.1)编译以下程序:

#include <optional>
int main()
{
    std::optional<int> o1;
}

输出是

main.cpp:1:20: fatal error: optional: No such file or directory #include optional

此处给出的示例甚至是这样: http://en.cppreference.com/w/cpp/utility/optional/optional

有什么线索吗?

std::optional 将成为 C++17 标准的一部分,但如果您想在此之前使用,则必须改用 std::experimental::optional,可在 header <experimental/optional>.

处于实验阶段(TS):

#include <experimental/optional>

示例:

http://coliru.stacked-crooked.com/a/09ab8d1e51680a79

#include <experimental/optional>
#include <iostream>
int main()
{
    std::experimental::optional<int> o1;
}