अब shared_ptr
tr1 में है, आपको क्या लगता है कि std::auto_ptr
के उपयोग के साथ क्या होना चाहिए? दोनों के पास अलग-अलग उपयोग के मामले हैं, लेकिन auto_ptr
के सभी उपयोग मामलों को भी shared_ptr
के साथ हल किया जा सकता है। क्या आप auto_ptr
को छोड़ देंगे या उन मामलों में इसका उपयोग जारी रखेंगे जहां आप स्पष्ट रूप से व्यक्त करना चाहते हैं कि किसी एक बिंदु पर केवल एक वर्ग का स्वामित्व है?std :: auto_ptr का Idiomatic उपयोग या केवल shared_ptr का उपयोग करें?
मेरा लेना यह है कि auto_ptr
का उपयोग करके कोड में स्पष्टता जोड़ सकती है, ठीक से कोड के डिजाइन के संकेत को जोड़कर, लेकिन दूसरी तरफ, नए प्रोग्रामर को प्रशिक्षण देते समय यह एक और सूक्ष्म मुद्दा जोड़ता है: उन्हें स्मार्ट पॉइंटर्स और उनके काम के बारे में बढ़िया विवरण समझें। जब आप हर जगह केवल एक स्मार्ट पॉइंटर का उपयोग करते हैं, तो आप बस shared_ptr
में सभी पॉइंटर्स को लपेट सकते हैं और इसके साथ किया जा सकता है।
इस पर आपका क्या लेना है?
माइक, दुर्भाग्य से कोई 'tr1 :: scoped_ptr' नहीं है। जाहिर है वे इसे सरल रखना चाहते थे। मुझे TR2 में स्थिति के बारे में पता नहीं है, लेकिन अगले मानक के बजाय 'unique_ptr'' पेश करेंगे, मुझे संदेह है कि 'scoped_ptr' होगा। –
इसके बारे में क्षमा करें - आप सही हैं। –
इसे स्वीकार किया गया, यह नहीं पता था कि auto_ptr को बहिष्कृत किया जा रहा था। जैसा कि आप कहते हैं, वह अकेले इसका उपयोग करने का एक आधिकारिक कारण नहीं है; हालांकि, मुझे एमएसल्टर्स का 'रिलाइक्श स्वामित्व अर्थशास्त्र' का उदाहरण पसंद आया। – Roel