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


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

"идентификатор": выравнивание (значение-1) отличается от предыдущего объявления (значение-2)

Компилятор нашел описатель выравнивания для типа класса, отличающегося от предыдущего объявления, или enum описателя выравнивания, отличного от естественного выравнивания базового типа.

Чтобы устранить эту ошибку, убедитесь, что все объявления и определения типа используют одно и то же значение выравнивания.

Следующий пример приводит к возникновению ошибки C2023:

// C2023.cpp
class alignas(2) C;

class alignas(4) C {};   // C2023

Возможное решение

// C2023b.cpp
// compile with: /c
class alignas(2) C;

class alignas(2) C {};