Поделиться через


Ошибка компилятора C3890

Var: невозможно взять адрес члена литеральных данных

Член литеральных данных существует в куче, собранной мусором. Объект в куче, собранной мусором, может быть перемещен, поэтому прием адреса не полезен.

Следующий пример приводит к возникновению ошибки 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
}