История изменений
Исправление MOPKOBKA, (текущая версия) :
Так это же СУВТ из метапрога. В нем это устроено так:
struct ContainerType {
enum Key {
TYPE_A,
TYPE_B,
TYPE_C
} key;
union {
TypeA a;
TypeB b;
TypeC c;
};
};
// Использование
ContainerType suvt = {
.key = TYPE_A,
.a = CreateTypeA()
};
...
switch(suvt.key) {
case TYPE_A:
return suvt.a.value+'A';
case TYPE_B:
return suvt.b.value+'B';
...
}
Исходная версия MOPKOBKA, :
Так это же СУВТ из метапрога. В нем это устроено так:
struct ContainerType {
enum Key {
TYPE_A,
TYPE_B,
TYPE_C
} key;
union {
TypeA a;
TypeB b;
TypeC c;
};
};
// Использование
TypeContainer suvt = {
.key = TYPE_A,
.a = CreateTypeA()
};
...
switch(suvt.key) {
case TYPE_A:
return suvt.a.value+'A';
case TYPE_B:
return suvt.b.value+'B';
...
}