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

武装分子

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

我有这种类型定义

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

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

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

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

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

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

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

我该怎么做?

武装分子

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档