make_shared как использовать управление памятью не по умолчанию

У меня есть вопрос о стандарте ..

Допустим, у меня есть пулы, которые управляют распределением моей памяти.

Я хотел использовать shared_ptr и проверил API ..

Как и ожидалось, я вижу, что для shared_ptr я контролирую выделение указателя и могу дать ему функцию освобождения, Perfect !!

Теперь я посмотрел лекции STL и обнаружил, что maked_shared более эффективно использует память (так как он может выделить блок управления и ptr в одном месте)
Очевидно, я сразу же обратился к API maked_shared, только чтобы узнать, что make_shared заставляет меня использовать только new / delete.
Так что вопросы будут:

  1. Я прав? только новый / удалить?
  2. Если так, то почему?

Спасибо!

1

Решение

Я верю, что вы можете использовать std::allocate_shared что позволяет вам использовать свой собственный распределитель.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]