C++ 11在没有对象的非静态数据成员上对齐

问题描述:

在C++ 11中,我可以在没有对象的非静态数据成员上使用对齐吗?C++ 11在没有对象的非静态数据成员上对齐

如果我有一个类,例如

class A 
{ 
    int num; 
    unsigned char letter; 
}; 

我可以使用alignof(A::letter);扩展的sizeof语法(例如sizeof(A::letter);)同样地?

是的。允许sizeof的更改也适用于alignof。 Here's提出sizeof的更改的论文之一。基本上它是通过改变未评估的操作数的含义来完成的,并且alignof使用未评估的操作数。

在声称支持alignof的编译器中尝试它,Clang(树干顶部),为我工作。