En C ++ 17, ¿cómo declara e inicializa un vector de pares (o tuplas) con un elemento opcional?
std::vector<std::pair<int, optional<bool> > > vec1 = { {1, true},
{2, false},
{3, nullptr}};
Tengo un par donde el segundo elemento puede ser nulo / opcional.
¿Responde esto a tu pregunta? ¿Cómo asignar "nada" a std :: opcional <T>?
—
Julien Lopez
@JulienLopez Eso está hablando de asignación.
—
LF
@LF Es la misma pregunta cuando eliminas el contexto irrelevante: ¿cómo creas un opcional vacío?
—
Julien Lopez
@JulienLopez En C ++, la inicialización y la asignación son muy diferentes en general. El hecho de que las dos preguntas tengan soluciones superpuestas no significa que sean las mismas. En particular, tenga en cuenta que no desea usar
—
LF
reset
aquí.
std::piecewise_construct
También puede proporcionar alternativas interesantes.