जब एक shared_ptr सदस्य चर आरंभ:shared_ptr सदस्य चर प्रारंभ करना, नया बनाम make_shared?
// .h
class Customer
{
public:
Customer();
private:
std::shared_ptr<OtherClass> something_;
}
// .cpp
Customer():
something_(new OtherClass())
{
}
बनाम
Customer():
something_(std::make_shared<OtherClass>())
{
}
make_shared संस्करण की अनुमति दी है? मुझे हमेशा पहला संस्करण देखना प्रतीत होता है, जिसे प्राथमिकता दी जाती है?
हर्ब सटर ने अभी इस पर एक गॉट लिखा है। [यह] देखें (http://herbsutter.com/gotw/_103/) और [एक मुद्दा] भी देखें (http://lanzkron.wordpress.com/2012/04/22/make_shared-almost-a-silver -बुललेट /) कि हर्ब स्पष्ट रूप से राज्य नहीं करता है। –
@RSamuelKlatchko - आपके उत्तरदाता में दिए गए पहले लिंक के लिए एक अपडेट किया गया लिंक https://herbsutter.com/2013/05/29/gotw-89-solution-smart-pointers/ –