'union_member' has already been initialized by another union member in the initializer list, 'union_member'
Two members of the same union were initialized in an initialization list. You can only access one member of the union.
The following sample generates C4608
// compile with /W3 class X { public: X(char c) : m_i( c + 1), m_c(c) { // try the following line instead // X(char c) : m_c(c) { } // C4608 private: union { int m_i; char m_c; }; }; union Y { public: Y(char * name) : m_number(0.3), m_string( name ) { } // C4608 private: double m_number; char * m_string; }; main() { }