Union tested for current member in use
c++, comparison, members, unions, variables
Solution
No, no such mechanism exists off-the-shelf. You'll have to take care of that yourself. The usual approach is wrapping the `union` in a `struct`:
struct MyUnion
{
int whichMember;
union {
//whatever
} actualUnion;
};
So you have `MyUnion x;` and `x.whichMember` tells you which field of `x.actualUnion` is in use (you have to implement the functionality though).
Problem
Do unions have a control structure to test which member is currently in use (or if it has any at all)? I'm asking this because undefined behavior is never a good thing to have in your program.