Compiler Error C2847
TOC
Collapse the table of content
Expand the table of content
This documentation is archived and is not being maintained.

Compiler Error C2847

Error Message

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:
© 2016 Microsoft