编译器错误 C2023

“identifier”:对齐方式 (value-1) 不同于之前的声明 (value-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 {};