std::allocator
のconstruct
とdestroy
メンバ関数を構築する要素の種類のパラメータ化されている:なぜ要素型にstd :: allocator :: constructとstd :: allocator :: destroyがテンプレート化されていますか?
template<class T>
class allocator
{
public:
typedef T value_type;
typedef T* pointer;
template<class U, class... Args>
void construct(U *p, Args&&... args);
template<class U>
void destroy(U *p);
...
};
この理論的根拠は何ですか?なぜ彼らはvalue_type*
またはpointer
のいずれかを取っていませんか? allocator<T>
は、タイプT
のオブジェクトを構築または破棄する方法しか知りません。