无法在 C++ 11 中初始化联合

Cannot initialize union in C++ 11

我无法在 std::pair 中初始化联合。

我有这种typedef

enum EValueType
{
    Int,
    Double,
    Variable,
    Unknown
};

union UValueContainer
{
    int __int;
    double __double;
    double* __variable;
};

typedef std::pair<EValueType, UValueContainer> variant;

我有一个带构造函数的基础 class,它获得 variant 类型的属性

class fooBase
{
    fooBase(variant attribute);
    ...
}

和一个带构造函数的派生 class,它必须初始化基础 class 构造函数的参数。

class fooDerived : public fooBase
{
    fooDerived(double* value) : fooBase({Variable, UValueContainer{.__variable = value}}
}

我该怎么做?

正如@DeiDei 评论我的 post - 我为每种类型声明/定义了构造函数。现在问题解决了。但是我想确定是否有其他方法可以解决这个问题。