2011-11-19 2 views
3

C++에서 객체없이 정적이 아닌 데이터 멤버에 alignof를 사용할 수 있습니까?C++ 11 객체가없는 비 정적 데이터 멤버에 대한 정렬

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

내가 유사하게 확장를 sizeof 구문 (예를 들어,이 sizeof(A::letter);)에 alignof(A::letter);을 사용할 수 있습니다 예를 들어

내가 클래스가있는 경우,?

답변

4

예. sizeof에 허용 된 변경 사항은 alignof에도 적용됩니다. Here's sizeof의 변경을 제안하는 논문 중 하나. 기본적으로 평가되지 않은 피연산자의 의미를 변경하여 수행되며, alignof는 평가되지 않은 피연산자를 사용합니다.

alignof를 지원한다고 주장하는 컴파일러에서 시도해 보면, Clang (트렁크 상단)이 저에게 효과적이었습니다.

관련 문제