Export (0) Print
Expand All
Expand Minimize

Compiler Error C2847

cannot apply sizeof to managed type 'class'

The sizeof operator gets the value of an object at compile time. The size of a managed class, interface, or value type is dynamic and so cannot be known at compile time.

For example, the following sample generates C2847:

// C2847.cpp
// compile with: /clr
ref class A {};

int main() {
   A ^ xA = gcnew A;
   sizeof(*xA);   // C2847 cannot use sizeof on managed object
}

The following sample generates C2847:

// C2847_b.cpp
// compile with: /clr:oldSyntax
__gc class A {};

int main() {
   A *xA = new A;
   sizeof(*xA);   // C2847 cannot use sizeof on managed object
}
Show:
© 2014 Microsoft