VS2013中的无效工会会员,但2015年无效

时间:2018-10-09 16:16:04

标签: c++ c++11 visual-studio-2015 visual-studio-2013

我上课

class myTestClass
{
public:
    int a;
    myTestClass();
    ~myTestClass();
private:
    float b;
};

我想添加到工会中

union myUnion
{
    myTestClass mt;
    int l;
    float f;
};

在Visual Studio 2013中,我收到错误消息'无效的联合成员-类“ myTestClass”具有不允许的成员函数。此消息似乎是由构造函数(不是我尝试添加的其他函数)引起的。

在Visual Studio 2015中进行测试,该错误似乎消失了。不幸的是,该项目位于VS2013中,并且无法移动(或者至少不会针对这个小问题)。

看看this question,似乎该构造被认为是不允许的成员函数,但在C ++ 11中是允许的。我想规范的这一部分是在VS13和VS15之间引入的。

为什么专门禁止构造函数而不禁止其他函数?在VS2013中有什么解决办法吗?上面提到的问题中的一个答案是建议将该类放在联合结构中。但是,我的并集已经在另一个结构中,并且我试图避免在代码中不必要的层。

0 个答案:

没有答案