Есть ли 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
какая-то эффективность по сравнению с простым написанием длинного кода?