Я мог бы неправильно понять некоторые понятия о распределителе. Но я действительно не знаю, зачем нужен аргумент std::size_t
, который будет передан в allocate
, чтобы указать количество объектов, которые будут выделены. Используется ли аргумент для распределения областей памяти, таких как массивы или векторы?Как пользовательский распределитель знает, указывает ли указатель на массив?
Если они, то может ли мой пользовательский распределитель узнать, указывает ли ранее возвращаемый указатель на область или только объект? Является ли мой распределитель ответственным за запись этих указателей?
Если они не, то зачем нам этот аргумент?
Помогает ли это? http://en.cppreference.com/w/cpp/memory/allocator/allocate – NathanOliver