Может ли память выделяться и освобождаться разными типами распределителей?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Может ли память выделяться и освобождаться разными типами распределителей?

Сообщение Anonymous »

Мой вопрос мотивирован std::polymorphic, который может владеть объектом любого типа, производным от T, если он создан с помощью тега std::in_place_type. Но я не вижу такого конструктора:

Код: Выделить всё

template 
polymorphic(polymorphic&& other>);
(Где U является производным от T, а A неявно конвертируется/сравнивается с Allocator).
Мне кажется, что это должно быть возможно. Концепция распределителя, по-видимому, предполагает, что пока два распределителя равны, один может освободить память, выделенную другим. Действительно, любые два объекта std::allocator сравниваются равными, как и любые два объекта std::pmr::polymorphic_allocator с одним и тем же базовым ресурсом памяти.
Разрешено ли это, или я упускаю какую-то причину, почему память, выделенная одним распределителем, в целом не может быть освобождена равным распределителем, но с другим типом?

Подробнее здесь: https://stackoverflow.com/questions/798 ... ator-types
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»