मैं कई अलग-अलग स्थानों को देखता हूं जो वर्दी प्रारंभिक recommended है। हर्ब सटर recommends यह, और का उपयोग करने के लिए एक सूची देता है। ऐसा लगता है कि सामान्य सर्वसम्मति इस वाक्यविन्यास का उपयोग करना है।क्यों समान प्रारंभिक (ब्रेसिज़ के साथ प्रारंभिक) की सिफारिश की जाती है?
हालांकि, मुझे नहीं लगता कि क्यों। इसमें std::initializer_list
की समस्या है प्राथमिकता। कक्षा में std::initializer_list
जोड़ना कोड तोड़ सकता है। टेम्पलेट्स के साथ, इसका उपयोग करने की अनुशंसा नहीं की जाती है। ऐसा लगता है कि "पुराने" तरीके से अधिक अपवाद हैं। इन समस्याओं में से कोई भी पुरानी विधि के साथ अस्तित्व में नहीं था।
मैं यह देखने में असफल रहा कि समान प्रारंभिकता क्यों बेहतर है। मेरा निष्कर्ष ()
सिंटैक्स का उपयोग करना जारी रखना है, और std::initializer_list
के साथ एक कन्स्ट्रक्टर को कॉल करने के मामले में {}
केवल का उपयोग करना है।
क्यों? वर्दी प्रारंभिक क्या देता है?
- संकीर्ण करने से मना करता है: अच्छी सुविधा। लेकिन, जैसा कि मैंने चेतावनी को संकुचित कर दिया है सभी मेरा कोड (क्योंकि मैं अपने कोड में सभी संकुचनों को जानना चाहता हूं, न केवल प्रारंभिकताओं पर), मुझे इस सुविधा की बहुत आवश्यकता नहीं है।
- सबसे परेशान पार्स: हाँ, यह एक समस्या है, लेकिन मैंने इसे बहुत ही कम से कम मारा। तो यह स्विच करने के लिए एक कारण नहीं है (मेरे लिए)। यह स्थान, मैं
{}
का उपयोग कर सकता हूं। - क्या कुछ और है (शायद, मैं अभी भी सी ++ की नई विशेषताएं सीख रहा हूं)?
"पुराने" तरीके से, याद रखने के लिए कोई नियम नहीं थे, कोई संभावित ब्रेक-ऑफ-कोड नहीं था। बस इसका इस्तेमाल करें, और कभी-कभी, बहुत ही कम ही, आप सबसे अधिक परेशान पार्स मारा। बस इतना ही।
क्या मेरी सोच कहीं गलत है?
यह जानने में मदद करता है कि चीजें क्या काम करती हैं और क्या चीजें हैं। 'एफ (जी(), एच (जे, i));' एफ (जी {}, एच (i, j)) से कम स्पष्ट है; '। यह तब भी मायने रखता है जब चर के उचित नाम होते हैं। – nwp
@nwp: yepp, यह एक वैध तर्क है। लेकिन, मेरे पास एक नामकरण सम्मेलन है जहां मैं तुरंत प्रकार देख सकता हूं। इसके अलावा, वर्तमान अच्छे आईडीई कुछ माध्यमों (रंग, इटैलिक, जो भी हो) के बीच अंतर दिखा सकते हैं। – geza
आपके नामकरण सम्मेलन का पालन एसटीएल या विभिन्न अन्य पुस्तकालयों द्वारा नहीं किया जाता है। लेकिन निश्चित रूप से, यदि आप कुछ बाहरी उपकरणों के साथ ब्रेसिड प्रारंभकर्ताओं की अधिकांश विशेषताओं को प्रतिस्थापित करते हैं और अकेले काम करते हैं या आपके आसपास के हर किसी को ऐसा करने के लिए मजबूर करते हैं तो आपको उनकी आवश्यकता नहीं होती है। हर सी ++ सुविधा हर किसी के लिए समझ में नहीं आता है। – nwp