Compiler Error C3890


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

'var' : you cannot take the address of a literal data member

A literal data member exists on the garbage-collected heap. An object on the garbage-collected heap can be moved, so taking the address is not useful.

The following sample generates C3890:

// C3890.cpp  
// compile with: /clr  
ref struct Y1 {  
   literal int staticConst = 9;  
int main() {  
   int p = &Y1::staticConst;   // C3890  
   int p2 = Y1::staticConst;   // OK