Код: Выделить всё
std::vector data;
//...
if(condition)
{
if(!data[42].has_value()) data[42].emplace();
data[42].value()[3].push_back("foo");
}
Код: Выделить всё
if(condition)
data[42].value_or_emplace()[3].push_back("foo");
Код: Выделить всё
template
T& value_or_emplace(std::optional& o)
{
return (o.has_value() ? o.value() : o.emplace());
}
if(condition)
value_or_emplace(data[42])[3].push_back("foo");
Подробнее здесь: https://stackoverflow.com/questions/798 ... s-no-value
Мобильная версия