Распределитель по умолчанию в stl имеет интерфейсы для создания и уничтожения элементов.
void construct(pointer __p, const _Tp& __val)
void destroy(pointer __p)
Но stl также предоставляет два типа функций для выполнения одних и тех же действий. Эти функции определены в stl_construct.h.
void _Construct(_T1* __p, const _T2& __value)
void _Destroy(_Tp* pointer)
Я вижу, что векторный шаблон использует _Construct и _Destroy, а не интерфейс, определенный в распределителе. Мой вопрос: зачем нам нужны два набора функций, чтобы делать одно и то же? Есть ли у них разница?