次の方法で共有


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