Compiler Error C3887

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

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

var' : the initializer for a literal data member must be a constant expression

A literal data member can only be initialized with a constant expresion.

The following sample generates C3887:

// C3887.cpp  
// compile with: /clr  
ref struct Y1 {  
   static int i = 9;  
   literal  
   int staticConst = i;   // C3887  
};  

Possible resolution:

// C3887b.cpp  
// compile with: /clr /c  
ref struct Y1 {  
   literal  
   int staticConst = 9;  
};  

Show: