मूल्य से गुजरना आजकल कई सर्किलों में आधुनिक है। मुझे लगता है कि विभिन्न कारणों से रचनाकारों के लिए यह एक अच्छा विकल्प है, इसलिए मैं टीसी के जवाब से सहमत हूं। हालांकि, तर्क (गैर-रचनात्मक कार्यों के लिए) पास करने का सबसे अच्छा तरीका व्यापक प्रश्न, मैं शायद ही कभी मूल्य से गुजरने की अनुशंसा करता हूं। मैं वास्तव में, वास्तव में दृढ़ता से दृढ़ता से विषय पर हर्ब सटर से एक बात के इस हिस्से को सुनने की सलाह देता हूं: https://youtu.be/xnqTKD8uD64?t=51m34s।
संक्षेप में, रचनाकारों के बाहर संक्षेप में: मूल्य से गुजरने से कॉन्स-रेफ द्वारा सरल पास की तुलना में सबसे खराब स्थिति प्रदर्शन गारंटी देता है, यह सभी मामलों में कॉन्स्ट-रेफ/रावल्यू-रेफ ओवरलोड से भी खराब प्रदर्शन देता है, यह इसे बनाता है अपवाद गारंटी देने के लिए कठिन है, यह polymorphic प्रकार स्लाइस, इसका उपयोग नहीं किया जा सकता है जब प्रतिलिपि सशर्त है।
ज्यादातर स्थितियों में, आप या तो कारण के भीतर प्रदर्शन की परवाह नहीं करते हैं, या आप बहुत परवाह करते हैं। पहले मामले में, कॉन्स्ट-रेफ का उपयोग करना सरल और आसान है। दूसरे मामले में, मूल्य से गुजरना पर्याप्त नहीं है। दोबारा, ध्यान रखें कि रचनाकार कुछ अलग-अलग कारणों से अलग हैं (वे असाइन करने के बजाए चीजों का निर्माण कर रहे हैं, वे कई तर्क लेते हैं जो आपको आवश्यक अधिभारों की संख्या को दृढ़ता से प्रभावित करते हैं)।
दुर्भाग्य से इस प्रश्न का इतना आसान एकल जवाब नहीं है। आखिरकार दोनों दृष्टिकोण काफी अच्छे हैं, लेकिन मुझे लगता है कि सी ++ मास्टर करना चाहते हैं, आप दोनों के पेशेवरों और विपक्ष को जानना चाहते हैं।
स्रोत
2016-01-14 21:30:17
आपके पास-बाय-वैल्यू में 'std :: move' होना चाहिए, साथ ही – CoffeeandCode
वेक्टर के रूप में नए वेक्टर को प्रारंभ करना चाहिए और इसे –