Чи std::make_unique
є якісь переваги ефективності, як std::make_shared
?
Порівняно з ручним побудовою std::unique_ptr
:
std::make_unique<int>(1); // vs
std::unique_ptr<int>(new int(1));
make_shared
може виділити як простір для об'єкта, так і простір для блоку управління разом в одному розподілі. Вартість цього полягає в тому, що об'єкт не може бути розміщений окремо від блоку управління, тому, якщо ви weak_ptr
багато використовуєте, то, можливо, ви отримаєте більше пам'яті.
make_shared
є якась ефективність щодо простого написання довгого коду руки?