编译器错误 C2847

无法将 sizeof 应用到托管或 WinRT 类型“类”

sizeof 运算符可在编译时获取对象的值。 由于托管或 WinRT 类的大小、接口或值类型是动态的,因此在编译时无法得知。

例如,以下示例生成 C2847:

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

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