编译器错误 C3160
“pointer”: 托管或 WinRT 类的数据成员不能具有此类型
内部垃圾回收指针可能会指向托管或 WinRT 类的内部。 因为它们比整个对象的指针慢,并且需要垃圾回收器进行特殊处理,因此你不能将内部托管的指针声明为类的成员。
以下示例生成 C3160:
// C3160.cpp
// compile with: /clr
ref struct A {
// cannot create interior pointers inside a class
interior_ptr<int> pg; // C3160
int g; // OK
int* pg2; // OK
};
int main() {
interior_ptr<int> pg2; // OK
}