Compiler Error C3816


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 C3816.

declaration' was previously declared or defined with a different managed or WinRTmodifier

A forward declaration and an actual declaration require that there be no conflicts or inconsistencies in the declaration of attributes.

The following sample generates C3816 and shows how to fix it:

// C3816a.cpp  
// compile with: /clr /c  
class C1;  
// try the following line instead  
// ref class C1;  
ref class C1{  // C3816, forward declaration does not use ref