8
組合は、現在使用中のメンバーをテストするための制御構造を持っていますか?私は未定義の振る舞いが決してあなたのプログラムにあることは決してないので、これを求めています。現在のメンバーが現在使用中であるかどうかがテストされている
組合は、現在使用中のメンバーをテストするための制御構造を持っていますか?私は未定義の振る舞いが決してあなたのプログラムにあることは決してないので、これを求めています。現在のメンバーが現在使用中であるかどうかがテストされている
いいえ、そのようなメカニズムは既製品ではありません。あなたはそれを自分で処理しなければなりません。 通常のアプローチはstruct
でunion
をラップしている:
struct MyUnion
{
int whichMember;
union {
//whatever
} actualUnion;
};
ですから、MyUnion x;
を持っているとx.whichMember
は(あなたがが機能を実装する必要があります)を使用しているx.actualUnion
のどのフィールドを示します。
+1:このタイプの構造は、「区別されたユニオン」または「タグ付きユニオン」と呼ばれることがよくあります。 –
はい、私は同様のアプローチを考えましたが、自分で作った言語構造を好むので、存在しているかどうかを知るだけでした。迅速な答えをありがとう。 –