コンパイラ エラー 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
}