Я не могу инициализировать объединение в std :: pair.
У меня есть этот тип typedef
enum EValueType
{
Int,
Double,
Variable,
Unknown
};
union UValueContainer
{
int __int;
double __double;
double* __variable;
};
typedef std::pair<EValueType, UValueContainer> variant;
, и у меня есть базовый класс с конструктором, который получает атрибутvariant
type
class fooBase
{
fooBase(variant attribute);
...
}
и производный класс с конструктором, который должен инициализировать аргумент конструктора базового класса.
class fooDerived : public fooBase
{
fooDerived(double* value) : fooBase({Variable, UValueContainer{.__variable = value}}
}
Как я могу это сделать?