Se você tiver um std::variant
com tipos duplicados, como atribuir a ele? std::variant
aparentemente permite tipos duplicados.
std::variant<int,int> foo;
compila com sucesso, mas não tenho certeza de como atribuir a foo
, ainda mais se eu desejar atribuir a uma entrada específica na variante.
Eu tentei:
std::variant<int,int> foo;
foo = 1;
falha ao compilar, com o erro que =
é indefinido para std::variant<int,int>
.
std::variant<int,int> foo;
get<foo, 0> = 1;
falha ao compilar com o erro de que não há informações de tipo contextual suficientes para determinar o tipo.
Eu quero algo como
std::variant<int,int> foo;
something<foo, 1> = 10
assert(foo.index == 1);
assert(get<1>(foo) == 10);