стандартный 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

Любые подсказки почему?

6

Решение

std::optional будет частью стандарта C ++ 17, но если вы хотите использовать раньше, вам придется использовать std::experimental::optional вместо этого доступно в шапке <experimental/optional>,

10

Другие решения

Находится в экспериментальной (ТС):

#include <experimental/optional>

пример:

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

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

По вопросам рекламы [email protected]