बूस्ट unique_ptr को बढ़ावा देने के दौरान और link पर यह कहता है कि इस तरह के पॉइंटर की प्रतिलिपि नहीं बनाई जा सकती है जिसे मैं समझता हूं हालांकि यह कहता है कि इस तरह के पॉइंटर को फ़ंक्शन से वापस किया जा सकता है। यह मेरे दिमाग में एक प्रश्न उठाता है जब किसी फ़ंक्शन से कुछ वापस नहीं किया जाता है (एक संदर्भ या सूचक के रूप में नहीं) प्रतिलिपि निर्माता कहा जाता है। तो क्या इसका मतलब यह है कि अद्वितीय पीआरटी असाइनमेंट ऑपरेटर के साथ काम नहीं करता है और एक प्रतिलिपि निर्माता के साथ काम करता है (जैसे कि एक समय में केवल एक ऑब्जेक्ट के लिए पीआरआर अंक) क्या साझा_प्टर को बढ़ावा देने के अलावा इसमें ओवरहेड कम होता है? मैं VS2010एक अद्वितीय_ptr <T> लौट रहा है। अवधारणा स्पष्टीकरण
उत्तर
जब फ़ंक्शन से कुछ वापस लौटाया जाता है (संदर्भ या सूचक के रूप में नहीं) प्रतिलिपि निर्माता को बुलाया जाता है। [...]
आवश्यक नहीं है। सी ++ 11 में, कॉपी कन्स्ट्रक्टर केवल तभी चुना जाता है जब चालक स्थानांतरित नहीं होता है। एक चालक कन्स्ट्रक्टर की अनुपस्थिति में, सामान्य रूप से एक चाल (उदाहरण के लिए किसी फ़ंक्शन से मूल्य पर लौटने पर) एक प्रतिलिपि के लिए तय होता है।
unique_ptr
में एक चालक कन्स्ट्रक्टर है, जिसका अर्थ है कि unique_ptr
किसी फ़ंक्शन से मूल्य द्वारा वापस किया जा सकता है।
क्या यह साझा_प्टर को बढ़ावा देने के बजाय ओवरहेड से भी कम है?
यह एक असंबंधित प्रश्न है, लेकिन हाँ, इसमें कम ओवरहेड है। वास्तव में, unique_ptr
को शून्य-ओवरहेड कच्चे सूचक के RAII wrapper के रूप में डिज़ाइन किया गया है जो अद्वितीय स्वामित्व को समझता है। unique_ptr
का उपयोग करके कच्चे सूचक के उपयोग के संबंध में प्रदर्शन के संदर्भ में और स्मृति खपत के मामले में कोई हानि नहीं होती है।
- 1. एक अद्वितीय_ptr
- 2. अद्वितीय_ptr
- 3. अद्वितीय_ptr
- 4. अद्वितीय_ptr <char[]> से unique_ptr <const char []>
- 5. CLGeocoder केवल एक प्लेसमार्क लौट रहा है
- 6. सर्विसस्टैक और एक स्ट्रीम लौट रहा है
- 7. एक std :: सूची महंगा लौट रहा है?
- 8. जावा लैम्ब्डा एक लैम्ब्डा लौट रहा है
- 9. एक खाली स्ट्रिंग लौट रहा है: सी ++
- 10. pthread_cond_timedwait तुरंत लौट रहा है
- 11. TextBlock.GetBindingExpression वापस लौट रहा है
- 12. ओपनआईडी एक दोषपूर्ण अवधारणा है?
- 13. धागा एक विंडोज अवधारणा है?
- 14. php फ़ंक्शन 0 लौट रहा है?
- 15. PackageManager.getAplicationIcon() डिफ़ॉल्ट आइकन लौट रहा है?
- 16. JQuery वैल() खाली लौट रहा है
- 17. CGContextClipToMask खाली छवि लौट रहा है
- 18. $ _FILES ["फ़ाइल"] ["आकार"] 0 लौट रहा है?
- 19. सी में va_list सुरक्षित लौट रहा है?
- 20. यह फ़ंक्शन NaN क्यों लौट रहा है?
- 21. ElementTree findall() खाली सूची लौट रहा है
- 22. django.utils.timezone बेवकूफ तारीख लौट रहा है?
- 23. MySQL LOAD_FILE वापस लौट रहा है
- 24. एंड्रॉइड: getSearchableInfo (getComponentName()) शून्य लौट रहा है?
- 25. सीएलएलोकेशन नकारात्मक गति लौट रहा है
- 26. ऑनप्रूवफ्रेम गलत बाइट लौट रहा है [] लंबाई
- 27. एंड्रॉइड जियोकोडर खाली पता लौट रहा है
- 28. mysqli_insert_id() हमेशा 0 क्यों लौट रहा है?
- 29. IJavaProject.findPackageFragmentRoots एक खाली सरणी क्यों लौट रहा है?
- 30. SKColor clearcolor बदले में एक काला रंग लौट रहा है?
"हालांकि, new move semptics का उपयोग करके unique_ptr को स्थानांतरित किया जा सकता है"। आपको आम तौर पर रावल संदर्भों को देखना चाहिए और विशेष रूप से अर्थशास्त्र को स्थानांतरित करना चाहिए। – Dave
संभावित डुप्लिकेट [कार्यों से अद्वितीय \ _ptr लौटने] [http://stackoverflow.com/questions/4316727/returning-unique-ptr-from-functions) – Praetorian