में काम नहीं करता है this post में चरणों का पालन करने के बाद मैं ग्रहण (इंडिगो) unique_ptr
(और अन्य सी ++ 11 नई सामग्री) को पहचानने में कामयाब रहा। समस्या यह है कि operator->
unique_ptr
के लिए ग्रहण में समर्थित नहीं है।अद्वितीय_ptr के लिए ड्रेफरेंस ऑपरेटर ग्रहण
class Foo { void bar() { /* ... */ } };
std::unique_ptr<Foo> foo;
(*foo).bar(); // 1
foo->bar(); // 2
प्रकरण 1
अपेक्षा के अनुरूप काम करता है:: कोई त्रुटि और स्वतः पूर्ण काम करता है यहाँ आप एक उदाहरण है। 2
के मामले में, हालांकि, ग्रहण एक त्रुटि के साथ कथन को चिह्नित करता है ("विधि 'बार' को हल नहीं किया जा सका"), साथ ही foo->
से स्वत: पूर्णता काम नहीं करती है।
सबसे दिलचस्प बात यह है कि मुझे std::shared_ptr
के साथ कोई समस्या नहीं है। यह केवल std::unique_ptr
के लिए होता है।
क्या किसी ने भी एक ही समस्या का अनुभव किया है? क्या किसी को इसे ठीक करने का कोई तरीका पता है?
संपादित करें: केवल स्पष्टीकरण उद्देश्यों के लिए, संकलन प्रक्रिया ऊपर दिखाए गए कोड स्निपेट के लिए ठीक है। तो, समस्या संकलक में नहीं है, लेकिन ग्रहण पर है।
@dirk: प्रश्न आईडीई में स्वत: पूर्णता और स्थैतिक लिंट-पिकिंग के बारे में है; संकलन के मुद्दों का कोई जिक्र नहीं है। – Rook
@dirkgently मैं g ++ 4.6 का उपयोग कर रहा हूं, इसलिए संकलन ठीक हो जाता है। समस्या केवल ग्रहण को प्रभावित करती है। – betabandido
@ रॉक: दाएं। मैं उस बिट को याद किया। – dirkgently