Compiler Error C2287


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at Compiler Error C2287.

class': inheritance representation: 'representation1' is less general than the required 'representation2'

A class is declared with a simpler representation than required.

The following sample generates C2287:

// C2287.cpp  
// compile with: /vmg /c  
class __single_inheritance X;  
class __single_inheritance Y;  
struct A { };  
struct B { };  
struct X : A, B { };  // C2287  X uses multiple inheritance  
struct Y : A { };  // OK