В C ++ 17, как вы объявляете и инициализируете вектор пар (или кортежей) с необязательным элементом?
std::vector<std::pair<int, optional<bool> > > vec1 = { {1, true},
{2, false},
{3, nullptr}};
У меня есть пара, где второй элемент может быть нулевым / необязательным.
Отвечает ли это на ваш вопрос? Как назначить «ничего» в std :: необязательный <T>?
—
Жюльен Лопес
@JulienLopez Это говорит о назначении.
—
LF
@LF При удалении ненужного контекста возникает тот же вопрос: как создать пустой необязательный параметр?
—
Жюльен Лопес
@JulienLopez В C ++ инициализация и присваивание в целом сильно различаются. Тот факт, что два вопроса имеют перекрывающиеся решения, не означает, что они совпадают. В частности, обратите внимание, что вы не хотите использовать
—
LF
reset
здесь.
std::piecewise_construct
может также предоставить интересные альтернативы.