次のプログラムをさまざまなコンパイラ(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
なぜ手がかりはありますか?
std::optional
はC++ 17標準の一部になりますが、それ以前に使用する場合は、代わりにstd::experimental::optional
を使用する必要があり、ヘッダー<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;
}