2012-06-14 10 views

Odpowiedz

12

Nie, żaden taki mechanizm nie istnieje na półce. Musisz się tym zająć. Zwykle podejście jest owijanie union w struct:

struct MyUnion 
{ 
    int whichMember; 
    union { 
     //whatever 
    } actualUnion; 
}; 

Więc trzeba MyUnion x; i x.whichMember powie Ci, która dziedzina x.actualUnion jest w użyciu (trzeba zaimplementować funkcjonalność chociaż).

+3

+1: Ten typ struktury jest często określany jako "związek dyskryminowany" lub "oznaczony związek". –

+0

Tak, myślałem o podobnym podejściu, ale ponieważ preferuję konstrukcje językowe dla tych, którzy są samoukami, po prostu musiałem wiedzieć, czy ktoś istnieje. Dzięki za szybką odpowiedź. –