2012-04-09 2 views

답변

2

boost::array은 템플릿 매개 변수를 기반으로 작동합니다. 템플릿 매개 변수는 런타임 값일 수 없습니다. 그래서 아니야.

또한 VLA는 스택에 선언 된 배열에만 적용됩니다 (ObjType val[someInteger];). 그들은 객체 (struct ObjType { int val[someInteger]; };를 선언 어레이에 적용되지 않습니다. 템플릿 매개 변수는 런타임 값이 될 수 있도록하더라도, 그것은 당신을 도울 것입니다.

당신이 단지를 사용하여 힙 할당을 감당할 수없는 경우 std::vector은 미리 할당 된 메모리의 "스택"을 가져 오는 할당자를 가지고 있습니다.

+0

STL, Boost 또는 다른 스택과 같은 할당자를 제공합니까? 아니면 직접 작성해야합니까? –

+0

STL은 ' std :: allocator'는'new'와'delete'를 사용합니다 .Boost는 풀링 된 메모리 할당 자 (http://www.boost.org/doc/libs/1_49_0/libs/pool/doc /html/index.html) 당신이 원하는 것을 할 수 있습니다. 그렇지 않으면, 당신은 hav 그것을 쓰려면 전자. –