为什么不允许用户定义联合体的构造函数?这将消除问题,并允许存在具有非平凡构造函数/析构函数的联合体成员。
此外,为什么联合体成员不能有任何自定义构造函数?先前的解释并不适用于自定义构造函数。
更新1: 示例:
struct SQuaternion
{
union
{
S3DVector Axis;
struct
{
float X;
float Y;
float Z;
};
};
float W;
};
注意:这里的问题似乎在于联合体是匿名的。因此,如何为联合体命名构造函数呢?仅仅因为它没有名称,而且没有其他原因,所以似乎不可能这样做。如果这只是一个简单的词汇问题,那将是一个可怕的理由……
更新2: 仅通过将有问题的成员包装在一个包含匿名结构中,错误就消失了。我想这是使用匿名联合体的最接近方法。它不再是一个问题,这个事实似乎很奇怪……