Mi chiedo quali siano le differenze tra un Boost Variant e union
tipo di dati in C/C++. So che un union
tipo di dati riprende la stessa posizione di memoria e il tipo di dati più grande della regione di memoria occupa la quantità totale di memoria utilizzata ad esempioBoost Variant essenzialmente un'Unione in c/C++?
union space {
char CHAR;
float FLOAT;
int INTEGER;
}S;
dovrebbe occupare 4 byte di memoria dal int
e float
sono la dimensione massima e pari. Esistono analogie e differenze in altri modi tra i tipi di dati Boost Variant e union
? So anche che un Variant Boost può assumere qualsiasi tipo di dati e consente tipo di dati "polimorfismo" (correggetemi se sto abusando un argomento parola OOP). Un tipo di dati di unione è quindi anche un tipo di polimorfismo?
Che cos'è "UB" e "POD"? – pandoragami
@ user2555139 Comportamento non definito e Plain Old Data (tipi) – Rapptz