web-dev-qa-db-ja.com

stdオプション:そのようなファイルまたはディレクトリはありません

次のプログラムをさまざまなコンパイラ(gcc 6.1を含む)でコンパイルしようとしました:

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

出力は

main.cpp:1:20:致命的なエラー:オプション:そのようなファイルまたはディレクトリはありません#includeオプション

これは、ここに示す例にも当てはまります。 http://en.cppreference.com/w/cpp/utility/optional/optional

なぜ手がかりはありますか?

9
scoulomb

std::optionalはC++ 17標準の一部になりますが、それ以前に使用する場合は、代わりにstd::experimental::optionalを使用する必要があり、ヘッダー<experimental/optional>で使用できます。

13
SirGuy

実験中(TS):

#include <experimental/optional>

例:

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

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