Khi khởi tạo một biến thành viên shared_ptr:Khởi tạo biến thành viên shared_ptr, mới so với make_shared?
// .h
class Customer
{
public:
Customer();
private:
std::shared_ptr<OtherClass> something_;
}
// .cpp
Customer():
something_(new OtherClass())
{
}
vs
Customer():
something_(std::make_shared<OtherClass>())
{
}
Sản phẩm phiên bản make_shared phép? Tôi luôn luôn có vẻ để xem phiên bản đầu tiên, được ưa thích?
Herb Sutter vừa viết GOTW về điều này. Xem [this] (http://herbsutter.com/gotw/_103/) và cũng xem [one issue] (http://lanzkron.wordpress.com/2012/04/22/make_shared-almost-a-silver -bullet /) mà Herb không nói rõ. –
@RSamuelKlatchko - Một liên kết cập nhật cho liên kết đầu tiên bạn cung cấp trong sử dụng ansewer của bạn https://herbsutter.com/2013/05/29/gotw-89-solution-smart-pointers/ –