I have a union in C like this:
union AUnion { struct CharBuf { char *buf; size_t len; } charbuf; uint8_t num; double fp_num; };
From my experience, I would say 'yes', though I've checked the C++14 standard and it even guarantees this. (c++11 will most likely have the same effects) Chapter 9.5 states: All non-static data members of a union object have the same address
All non-static data members of a union object have the same address
So, you can depend on this behavior.