2011-11-19 49 views
3

在C++ 11中,我可以在沒有對象的非靜態數據成員上使用對齊嗎?C++ 11在沒有對象的非靜態數據成員上對齊

如果我有一個類,例如

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

我可以使用alignof(A::letter);擴展的sizeof語法(例如sizeof(A::letter);)同樣地?

回答

4

是的。允許sizeof的更改也適用於alignof。 Here's提出sizeof的更改的論文之一。基本上它是通過改變未評估的操作數的含義來完成的,並且alignof使用未評估的操作數。

在聲稱支持alignof的編譯器中嘗試它,Clang(樹幹頂部),爲我工作。

相關問題