Как перейти с std::optionalC++

Программы на C++. Форум разработчиков
Anonymous
Как перейти с std::optional

Сообщение Anonymous »

Рассмотрим следующий пример, в котором мы анализируем данные и передаем результат следующей функции:

Код: Выделить всё

Content Parse(const std::string& data);
void Process(Content content);

int main()
{
auto data = ReadData();
Process(Parse(data));
}
Теперь давайте изменим код, используя std::optional для обработки неудачного шага синтаксического анализа:

Код: Выделить всё

optional Parse(const std::string& data);
void Process(Content content);

int main()
{
auto data = ReadData();
auto content = Parse(data);
if (content)
Process(move(*content));
}
Можно ли перейти от опционального::value()? Если это нормально для std::optional, допустимо ли это и для boost::optional?

Подробнее здесь: https://stackoverflow.com/questions/175 ... doptionalt

Вернуться в «C++»