sizeof 연산자가 "size_t"유형의 값을 생성하지 않고 대신 "size_t"와 동일한 기본 유형을 갖는 값을 생성한다는 것이 나보다 훨씬 지식이 풍부한 사람이 들었다. 이것이 의미 전문적 불과, C++ 11 5.3.3.6 및 C++ (14) 5.3.3.6 모두 상태가있을 수 있지만 다음sizeof 연산자에 의해 생성 된 데이터 유형
The result of sizeof and sizeof... is a constant of type std::size_t.
[ Note: std::size_t is defined in the standard header <cstddef> (18.2). —end note ]
나는 이것이 의미하는 것으로 해석 할 수있는 방법이 있다면 그 "unsigned int", "unsigned long"또는 size_t가 특정 컴파일러에서 나타 내기 때문에 "std :: size_t"또는 "size_t"를 표시해야하는 sizeof 데이터 형식을 표시하고 "std : : size_t "또는"size_t "컴파일러가 내부적으로 size_t라는 것을 알고 있기 때문에 범위에 size_t의 typedef가 없더라도.
하지만, 내 해석이 잘못하고 기본 데이터 유형을 표시하는 대신 올바른 될 경우,해야하지 C++ (11)와 C++ (14) 대신 말할 뭔가 같은 :
The result of sizeof and sizeof... is a constant of **the same type represented** by std::size_t.
나는 이것이 핀 머리에있는 천사의 숫자에 대해 논쟁하고있는 것을 알지만, 나는 아직도 어떤 것이 율법 주의적으로 올바른지 이해하고 싶다.
감사합니다, 레이
구현시'size_t '는'unsigned long'과 같을 것이고 컴파일러는 그것을 알고 있습니다. –
"표현"은 좋은 선택이 아닙니다. 'unsigned int'와'unsigned long'이 완전히 똑같은 표현을하는 것은 드문 일이 아니지만 여전히 구별되는 유형입니다. 'std :: size_t'는 "sizeof에 의해 반환 된 타입"을 의미하는 이름 일뿐입니다. –