编译器错误 C3890

“var”:不能采用 literal 数据成员的地址

回收了垃圾的堆上存在文本数据成员。 回收了垃圾的堆上的对象是可以移动的,因此,获取地址没有用。

以下示例生成 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
}