Do której zmiennej zostaje zapisana wartość, zmienne zadeklarowane wewnątrz unii

0

Hej,
mam poniższy kod:

#pragma once
enum Type { NUMBER, PLUS, OPERA, EXPR, EOS };
struct token
{
	Type type;
	union 
	{
		
		int valueIntN;
		double valueFloatPointN;
	};
	token() :valueFloatPointN{}
	{
		
	};
};

zamysł jest taki, że odczytuje dane z pliku i jeżeli jest to liczba ustawia jej typ na NUMBER oraz wartość w zależności od tego czy to int czy double w odp zmiennej określonej wewnątrz unii. W dalszej części programu chciałabym stworzyć odpowiedni obiekt klasy Number, na podstawie tokenu o typie NUMBER i odp wartości; do tego jednak muszę wiedzieć do której zmiennej w unii została zapisana wartość. Czy jest jakiś prosty sposób aby to zrobić? Czytałam artykuły na internecie ale poza informacjami aby badać rozmiar danych albo też tworzyć drugą strukturę która ma składową do unii nie dokopałam się do niczego innego.
Z góry bardzo dziękuję za informację!
Pozdrawiam A

2

Użyj std::variant. Jak musisz użyć unii, to musisz z innego źródła (np. inna zmienna) wiedzieć co w tej unii aktualnie jest aktywne.

0

Dzięki wielkie! O takie coś mi chodziło :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1