10

組合には、現在使用されているメンバー(またはメンバーがいる場合)をテストするための制御構造がありますか?未定義の振る舞いがあなたのプログラムにあるのは決して良いことではないので、私はこれを求めています。

4

1 に答える 1

14

いいえ、そのようなメカニズムは既成のものではありません。あなたはそれを自分で世話する必要があります。通常のアプローチは、を:でラップするunionことstructです。

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

つまりMyUnion x;x.whichMemberどのフィールドがx.actualUnion使用されているかがわかります(ただし、機能を実装する必要があります)。

于 2012-06-14T14:43:10.730 に答える