나는 aligned_storage라고하는 TR1 추가에 대해 머리를 터지려고 노력했습니다. 다음 문서를 읽는 동안 N2165, N3190 및 N2140 나는 내 인생에서 사용할 메모리의 스택 또는 힙 특성을 명확하게 설명하는 문장을 볼 수 없습니다.std :: aligned_storage (스택 또는 힙)의 할당 대상
msvc2010, boost 및 gcc에서 제공하는 구현을 살펴 보았습니다. 이들 모두는 공용체를 중심으로 스택 기반 솔루션을 제공합니다. 한마디로
:
은 aligned_storage 구현에 의해 사용되는 메모리 유형 (스택 또는 힙) 정의 또는 항상 기반으로 스택 할 의미인가?
및이를 정의하거나 결정하는 특정 문서는 무엇입니까?
참고
template<class _Ty, size_t _Len>
union _Align_type
{
// union with size _Len bytes and alignment of _Ty
_Ty _Val;
char _Pad[_Len];
};
다음 aligned_storage 데이터 (_Val, _Pad)는 스택에 생성되고 자동 가변 경우 MSVC10에서 다음이 경우 aligned_storage의 유형의 정의는, 인
참고 : 이것은 아니요 간단한 질문입니다. 답변을 게시하기 전에 질문을 이해하고 시도하십시오.
나는 이것보다 더 좋은 답변을 얻을 수 있을지 확신하지 못합니다. 데이터가'type'에 동적으로 할당되면 요점은 무엇입니까? 정렬에 어떤 도움이 될 수 있습니까? – icecrime
@ Zenikoder - 표준에서 인용문을 다시 읽습니다. 그리고 필요하다면 다시. :)'std :: aligned_storage <...> :: type'은 요청 된 정렬을 가진 POD 타입을 정의합니다. 이 유형의 저장소를 스택 또는 힙에 할당 할 수 있습니다. 관련이 없습니다. – atzz
@Zenikoder - 구현 정의가 아닙니다. 사용자 정의입니다. James가 인용 한 성명서는 모든 것을 분명하게 설명합니다. – atzz