История изменений
Исправление
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';
...
}