No C ++ 17, como você declara e inicializa um vetor de pares (ou tuplas) com um elemento opcional?
std::vector<std::pair<int, optional<bool> > > vec1 = { {1, true},
{2, false},
{3, nullptr}};
Eu tenho um par em que o segundo elemento pode ser nulo / opcional.
Isso responde sua pergunta? Como atribuir "nada" ao std :: optional <T>?
—
Julien Lopez
@JulienLopez Isso está falando sobre atribuição.
—
LF
@LF É a mesma pergunta quando você remove o contexto irrelevante: como você cria um opcional vazio?
—
Julien Lopez
@JulienLopez Em C ++, inicialização e atribuição são muito diferentes em geral. Só porque as duas perguntas têm soluções sobrepostas não significa que elas são iguais. Em particular, observe que você não deseja usar
—
LF
reset
aqui.
std::piecewise_construct
também pode fornecer alternativas interessantes.