Compiler Error C2726
Visual Studio 2015
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at Compiler Error C2726.
gcnew' may only be used to create an object with managed or WinRT type
You cannot create an instance of a native type on the garbage-collected heap.
The following sample generates C2726 and shows how to fix it:
// 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
}
The following sample generates C2726 and shows how to fix it:
// 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; // OK
V* p2 = __gc new V;
}
Show: