Có std::make_unique
bất kỳ lợi ích hiệu quả như thế std::make_shared
nào?
So với xây dựng thủ công std::unique_ptr
:
std::make_unique<int>(1); // vs
std::unique_ptr<int>(new int(1));
make_shared
có thể phân bổ cả không gian cho đối tượng và không gian cho khối điều khiển cùng nhau trong một phân bổ duy nhất. Cái giá phải trả là đối tượng không thể được tách riêng ra khỏi khối điều khiển, vì vậy nếu bạn sử dụng weak_ptr
nhiều thì cuối cùng bạn có thể sử dụng nhiều bộ nhớ hơn.
make_shared
bất kỳ hiệu quả hơn so với chỉ viết mã tay dài?