मैं अभी -std=c++0x
जीसीसी में ध्वज के साथ अपने खुद के कुछ कोड संकलित कर रहा हूं, जैसा कि मैं चाहता हूं कि सभी युवा लोग जो कर रहे हैं, उसे जारी रखें (बशर्ते कि वे मेरे लॉन में रहें), और मैं चेतावनी के भार के साथ समाप्त हुआ auto_ptr
पदावनत होने के बारे में। बेशक, मुझे पता था कि auto_ptr
C ++ 0x में पदावनत किया गया था, लेकिन ...
क्या समय और मेहनत की बर्बादी नहीं है? वंचित न करने के कारण (उदाहरण के लिए auto_ptr के साथ):
वहाँ कोड का एक महासागर है जिसे अभी भी समर्थन करने की आवश्यकता है, लाखों चेतावनियों का उत्पादन केवल लोगों को चेतावनी को बंद करने के लिए लुभाएगा।
auto_ptr
थोड़ा पागल है, लेकिन यह वास्तव में टिन पर क्या कहता है।अगर हम वास्तव में चीजों को हटाना चाहते हैं, तो मैं नामांकित करता हूं
printf()
। लेकिन जरा कल्पना कीजिए कि क्या होगा?auto_ptr
बहुत सारे दोस्त नहीं हैं, लेकिन कम से कम मेरे सी ++ कोड में इसका उपयोग अधिक से अधिक किया जाता हैprintf
, जिसका उपयोग बिल्कुल नहीं किया जाता है।समिति के पास यह अधिकार प्राप्त करने का एक बुरा रिकॉर्ड है - उन्होंने नेमस्पेस स्कोप में स्थिर पदावनत कर दिया, और अब ऐसा लगता है कि यह अनिर्दिष्ट हो गया है - अगर
auto_ptr
एक समान वापसी हुई तो मुझे आश्चर्य नहीं होगाअंत में, समिति जो भी कहती है, संकलक कार्यान्वयनकर्ता उनकी उपेक्षा करते हैं - वे बस अपने ग्राहकों के कोड को तोड़ने का जोखिम नहीं उठा सकते हैं, वे सभी कर सकते हैं जो चिड़चिड़ापन चेतावनी जारी कर सकते हैं।
तो मेरा सवाल है - क्या आप डिप्रेशन (किसी भी चीज़ के बारे में नहीं, सिर्फ auto_ptrs से नहीं, और सिर्फ C ++ में) एक अच्छा विचार मानते हैं, और यदि ऐसा है, तो क्यों?
unique_ptr
और खुश रहें।
auto_ptr
एक उदाहरण के रूप में उपयोग किया।