Поделиться через


Ошибка компилятора C2847

невозможно применить sizeof к управляемому типу или типу WinRT type "class"

Замечания

Оператор sizeof получает значение объекта во время компиляции. Размер управляемого класса или класса WinRT, интерфейса или типа значения является динамическим, поэтому он не может быть известен во время компиляции.

Example

Например, следующий пример приводит к возникновению ошибки C2847:

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

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