ho qualcosa di simile:Accesso stesso tipo di membro attivo nei sindacati
union DataXYZ
{
struct complex_t
{
float real, imag;
} complex;
struct vector_t
{
float magnitude, phase;
} vector;
};
ho alcuni vettori di questi, essendo per tutti gli usi della memoria di lavoro, in cui io uso i campi di conseguenza dopo il contesto semantico.
So che è un comportamento non definito leggere un campo in un'unione, quando l'ultimo membro attivo era un altro campo (e tipo?). Questo è importante quando i tipi e il layout corrispondono esattamente?
Ho commentato alcune altre domande simili, chiedendo riferimenti che garantiscano il comportamento, ma non è ancora venuto fuori nulla - quindi questa domanda.
Eventuali duplicati di [C++ comportamento non definito con i sindacati] (http://stackoverflow.com/questions/17273320/c-undefined-behaviour-with-unions) – 4386427
Non è un buon duplicato. Non c'è un riferimento standard. – Bathsheba
Questo è in realtà legale. – Simple