stl のデフォルト アロケータには、要素を構築および破棄するためのインターフェイスがあります。
void construct(pointer __p, const _Tp& __val)
void destroy(pointer __p)
しかし、stl は同じことを行う 2 種類の関数も提供します。これらの関数は stl_construct.h で定義されています。
void _Construct(_T1* __p, const _T2& __value)
void _Destroy(_Tp* pointer)
ベクター テンプレートは、アロケーターで定義されたインターフェイスではなく、_Construct と _Destroy を使用していることがわかります。私の質問は、なぜ同じことをするのに 2 つの関数セットが必要なのですか? それらに違いはありますか?