아래의 코드에서와 같이 임의 할당자를 사용하여 할당 한 기본 유형의 배열에 대해 allocator.construct()를 호출해야합니까? 이 클래스는 할당 된 메모리를 특정 값으로 초기화 할 필요가 없으므로 새로 할당 된 메모리 덩어리로 allocator.construct()를 호출하면 불필요한 것으로 보인다. 배열이 항상 원시 형으로 구성되어 있기 때문에이 메서드를 호출하지 않을 위험이 있습니까?C++ Primitive를위한 allocator.construct 호출하기
template <class T, template <class> class Allocator = std::allocator>
class foo
{
public:
typedef Allocator<T> allocator;
typedef typename allocator::pointer pointer;
private:
unsigned size_;
allocator alloc_;
pointer t_;
public:
foo(unsigned n) throw(std::bad_alloc) : size_(n), alloc_(),
t_(alloc_.allocate(n))
{
// Note that I do not call alloc_.construct() here.
}
~foo() { alloc_.deallocate(t_, size_); }
};
코드를 설명하는 대신 간단한 코드를 게시하는 것이 더 쉽습니다. –
코드 샘플을 내 게시물에 추가했습니다. –