联盟测试了当前正在使用的成员

时间:2012-06-14 14:42:35

标签: c++ variables comparison unions members

工会是否有控制结构来测试当前正在使用哪个成员(或者它是否有任何成员)?我问这个是因为未定义的行为在你的程序中永远不是一件好事。

1 个答案:

答案 0 :(得分:12)

不,现有的机制不存在。你必须自己照顾好自己。 通常的方法是将union包裹在struct

struct MyUnion
{
   int whichMember;
   union {
      //whatever
   } actualUnion;
};

所以你有MyUnion x;x.whichMember告诉你x.actualUnion的哪个字段正在使用中(你必须实现这个功能)。