Załóżmy, że mam taki wektor:
std::vector<std::variant<std::string, char, bool, int, float, double> > variantVector;
do którego dodaję, a następnie odczytuję dane:
variantVector[0].emplace<int>(12345);
variantVector[0].emplace<std::string>("text");
std::cout << std::get<std::string>(variantVector[0]);
W tym wypadku wyświetlony zostaje "text". Gdybym "dodał" do variantVector[0] najpierw std::string, a później int, wyrzucony zostanie błąd. W jaki sposób mogę odczytać wszystkie wartości zmiennych w variantVector[0], a nie tylko tą ostatnią?
Mam też pytanie dotyczące typów w std::variant - czy można stworzyć taki variant, który zaakceptuje każdy typ, nieuwzględniony wcześniej w definicji (na zasadzie auto lub std::any)?