non-default constructible (а так же non-moveable/copyable, если имеет значение). Это нормально использовать (абьюзить?) std::optional для типов таких полей с целью последовательно инициализировать все эти поля (через std::optional::emplace)? Или желание такого — это симптом чего-то плохого? Почему не std::unique_ptr — потому что у него нет .value(), кидающего исключение.
у unique_ptr - есть .get() кидающий исключения. А так нужно больше подробностей
какого рода подробности?
Ну что ты хочешь конкретно. Выглядит, будто тебе опшнл не нужен, а нужен просто init-list)
как он у него может кидать исключения? Он (T*)nullptr возвращает
Нужен какой-то init-list на максималках. Такого нет в языке.
Если тебе действительно надо инициализировать поля отложено, то да - опшнл
Обсуждают сегодня