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
}