मैं किसी भी स्थिति के बारे में सोच नहीं सकता है, जहांक्या वस्तुओं का निर्माण करते समय std :: make_shared का उपयोग न करने का कोई कारण नहीं है?
std::shared_ptr<Object> obj(new Object("foo", 1));
auto obj = std::make_shared<Object>("foo", 1);
बाद हमेशा बेहतर इलाके में परिणाम और स्मृति विखंडन को कम कर देता करने के लिए प्राथमिकता दी जाएगी। क्या कोई ऐसी स्थिति है, जहां आप कच्चे पॉइंटर्स लौटने वाले कोड के साथ इंटरफेसिंग को छोड़कर, पहले फॉर्म का उपयोग करने के लिए (या मजबूर होना) पसंद करेंगे?
मुझे लगता है, आप कच्चे पॉइंटर्स के साथ इंटरफेसिंग करने के लिए 'std :: unique_ptr' से कनवर्ट करने पर विचार करेंगे? क्योंकि मुझे लगता है कि यह कैननिकल प्रकार कारखाने के कार्यों से वापस किया जाना है। अन्य पॉइंटर्स को "कच्चे पॉइंटर्स" के रूप में माना जाएगा और आधुनिक सी ++ में एक जगह होगी? –