मुझे यहां पर जानबूझकर व्यक्तिपरक प्रश्न पूछने से नफरत है, लेकिन मेरे पास यह पूछने के लिए कोई और नहीं है ...सी ++: ऑटो, या टाइपपीफ का उपयोग करें?
मैं और अधिक अपनाने के द्वारा अपनी टीम में "उदाहरण के आधार पर" करने की कोशिश कर रहा हूं मैं लिखता हूं नए कोड में आधुनिक सी ++ अवधारणाओं। मेरे सहकर्मियों टेम्पलेट्स का एक सा शर्मीली है, और टाइप करने के बारे में शिकायत कर रहे हैं unique_ptr<Foobar>
या सिर्फ Foobar*
के बजाय shared_ptr<Foobar>
जब मैं हाल ही में बना लिया है कुछ वर्गों (कारखाना तरीकों लौट unique_ptr
रों और मैं shared_ptr
का उपयोग कर वैक्टर में इन वस्तुओं की सूची की दुकान) का उपयोग।
उन्होंने मेरी बांह को मोड़ दिया और मुझे टाइप करने के लिए कुछ आसान टाइप करने के लिए आश्वस्त किया, उदाहरण के लिए FoobarUniquePtr
।
लेकिन अब मैं इन टाइपिफ के साथ कॉन्स्ट-शुद्धता की गड़बड़ी में हूं। मुझे प्रत्येक कॉन्स और गैर कॉन्स प्रकार के लिए अतिरिक्त टाइपपीफ परिभाषित करना होगा, और const const_FoobarUniquePtr
कॉन्स अर्थशास्त्र को उचित रूप से व्यक्त नहीं करता है।
तो, मेरे प्रश्न के लिए, क्या इन टाइपपीफ का उपयोग करना बंद करना और इसके बजाय मेरे टीम के साथी पर auto
को फेंकना होगा जब वे टेम्पलेट किए गए स्मार्ट पॉइंटर्स टाइप करने के बारे में शिकायत करते हैं? मैं अन्य विकल्पों के लिए भी खुला हूं।
+1 अपने सहकर्मियों को अधिक आधुनिक प्रथाओं का उपयोग करने के लिए प्रयास करने के लिए +1! – Nick
तो 'unique_ptr' या 'const unique_ptr ' के साथ समस्या है? –
Useless
लगता है जैसे ऑटो इस प्रकार की चीज़ के लिए बनाया गया था। यह एक अच्छा शॉर्टकट है जो आपको वैरिएबल के लिए उपयोग करने के लिए बिल्कुल किस प्रकार की आवश्यकता है, यह पता लगाने के बजाय ऑटो डाल सकता है। जब आप पूछते हैं कि क्या यह समझ में आता है, ठीक है, भाषा मानक का उसका हिस्सा और इस तरह से इसका उपयोग करने से मुझे 'सही' लगता है। लेकिन निश्चित रूप से कुछ व्यक्तिगत वरीयताएं इसमें आ सकती हैं क्योंकि मुझे लगता है कि कुछ लोग तर्क दे सकते हैं कि वे स्पष्ट रूप से कहीं भी इस्तेमाल किए गए स्पष्ट प्रकार को देखेंगे और ऑटो पर भरोसा नहीं करेंगे। लेकिन व्यक्तिगत वरीयता से परे, यह एक वैध उपयोग की तरह लगता है। – Nerdtron