Compiler Error C2658

 

For the latest documentation on Visual Studio 2017 RC, see Visual Studio 2017 RC Documentation.

'member': redefinition in anonymous struct/union

Two anonymous structures or unions contained member declarations with the same identifier but with different types. Under /Za, you will also get this error for members with the same identifier and type.

The following sample generates C2658:

// C2658.cpp  
// compile with: /c  
struct X {  
   union { // can be struct too  
      int i;  
   };  
   union {  
      int i;   // Under /Za, C2658  
      // int i not needed here because it is defined in the first union  
   };  
};  
  
struct Z {  
   union {  
      char *i;  
   };  
  
   union {  
      void *i;   // C2658 redefinition of 'i'  
      // try the following line instead  
      // void *ii;  
   };  
};  

Show: