Compilerfehler C2726

'gcnew' kann nur zum Erstellen eines Objekts mit verwaltetem Typ verwendet werden

Sie können keine Instanz eines systemeigenen Typs auf dem Heap der Garbage Collection erstellen.

Im folgenden Beispiel wird C2726 generiert:

// C2726.cpp
// compile with: /clr
using namespace System;
class U {};
ref class V {};
value class W {};

int main() {
   U* pU = gcnew U;    // C2726
   U* pU2 = new U;   // OK
   V^ p2 = gcnew V;   // OK
   W p3;   // OK

}

Im folgenden Beispiel wird C2726 generiert:

// C2726b.cpp
// compile with: /clr:oldSyntax
#using <mscorlib.dll>
using namespace System;

class U {};
__gc class V {};

int main() {
   U* pU = __gc new U;    // C2726
   U* pU2 = new U;
   V* p2 = __gc new V;
}