Я попытался скомпилировать следующую программу с различными компиляторами (в том числе 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>
,
Находится в экспериментальной (ТС):
#include <experimental/optional>
пример:
http://coliru.stacked-crooked.com/a/09ab8d1e51680a79
#include <experimental/optional>
#include <iostream>
int main()
{
std::experimental::optional<int> o1;
}