无法在 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 - 我为每种类型声明/定义了构造函数。现在问题解决了。但是我想确定是否有其他方法可以解决这个问题。
我无法在 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 - 我为每种类型声明/定义了构造函数。现在问题解决了。但是我想确定是否有其他方法可以解决这个问题。