5
मुझे एक कंपाइलर त्रुटि मिली और कुछ दिलचस्प देखा। किसी कारण से unique_ptr
auto_ptr
के लिए एक अधिभार है, लेकिन मैंने सोचा कि auto_ptr
पदावनत किया गया था:auto_ptr के लिए unique_ptr का अधिभार क्यों है?
/usr/local/include/c++/4.9.0/bits/unique_ptr.h:228:2:
note:template<class _Up, class>
std::unique_ptr<_Tp, _Dp>::unique_ptr(std::auto_ptr<_Up>&&)
unique_ptr(auto_ptr<_Up>&& __u) noexcept;
/usr/local/include/c++/4.9.0/bits/unique_ptr.h:228:2:
note: template argument deduction/substitution failed:
main.cpp:41:67: note: mismatched types 'std::auto_ptr<T>' and 'char*'
इस कोड है कि auto_ptr
इस्तेमाल किया साथ क्योंकि पीछे की ओर की अनुकूलता है?
'auto_ptr' का उपयोग करने वाले कोड के साथ पिछड़ा संगतता के अतिरिक्त, यह 'auto_ptr' से' unique_ptr' तक जाने के लिए एक संक्रमण उपकरण के रूप में भी कार्य करता है। किसी को एक बार में एक संपूर्ण कोड बेस को संक्रमण नहीं करना पड़ता है। आप इस रूपांतरण का उपयोग संक्रमण सीमा पार करने के लिए, एक समय में एक टुकड़ा कर सकते हैं। ऐसा कहा जा रहा है कि, फील्ड रिपोर्ट ने वैश्विक खोज/प्रतिस्थापन करने और फिर संक्रमण की विधि के रूप में संकलन-समय विफलताओं की जांच करने पर एक अच्छी सफलता दर का संकेत दिया है। –