Compiler Error C3828

'object type': placement arguments not allowed while creating instances of managed or WinRTclasses

When creating an object of a managed type or Windows Runtime type, you cannot use the placement form of operator ref new, gcnew or new.

The following sample generates C3828 and shows how to fix it:

// C3828a.cpp
// compile with: /clr
ref struct M {
};

ref struct N {
   static array<char>^ bytes = gcnew array<char>(256);
};

int main() {
   M ^m1 = new (&N::bytes) M();   // C3828
   // The following line fixes the error.
   // M ^m1 = gcnew M();
}