2015-05-05 10 views
7

जब मैं अपने कोड 1 पर (हाल ही में जारी) Cppcheck 1.69 इस्तेमाल किया, यह संदेशों जहाँ मैं कोई भी उम्मीद ;-) अक्षम करना noExplicitConstructor साबित कर दिया कि उन सभी को वास्तव में इस तरह के थे की एक पूरी बहुत कुछ पता चला है।क्या मुझे वास्तव में स्पष्ट कीवर्ड को बड़े पैमाने पर पेश करना चाहिए?

लेकिन मैंने पाया कि मैं नए Cppcheck संदेशों की एक बहुत कुछ के साथ केवल एक ही नहीं कर रहा हूँ, लिब्रे ऑफिस का विश्लेषण (जो मैं सार्वजनिक रूप से दिखा सकते हैं) के परिणामों को देखने के:

enter image description here

एक अनुभवी प्रोग्रामर क्या करेगा:

  • चेक दबाएं?
  • बड़े पैमाने पर explicit कीवर्ड प्रस्तुत करें?

1संपादित करें: मेरी नहीं कोड लेकिन कोड मैं पर काम करना होगा, यह विरासत कोड है बेशक यह है: C और C++ कई में (का मिश्रण पूर्व) मानक स्वाद, और यह एक बहुत बड़ा कोड आधार है।

+6

एक अनुभवी प्रोग्रामर ने 'स्पष्ट' का उपयोग किया होगा जहां इसकी आवश्यकता है, और इसे छोड़ा गया जहां निहित रूपांतरण की आवश्यकता है। – juanchopanza

+15

मैं अन्य प्रोग्रामर (अनुभवी या अन्यथा) के लिए बात नहीं कर सकता, लेकिन मैं 'स्पष्ट' का उपयोग नहीं करता जब तक कि मैं विशेष रूप से निहित रूपांतरणों को अनुमति नहीं देना चाहता। यह आश्चर्य के लिए दायरा कम कर देता है। –

+0

@juanchopanza मैंने नए कोड में 'स्पष्ट' का उपयोग करना शुरू किया, लेकिन क्या मुझे उपकरण के इस सुझाव के बाद पुराना कोड दोबारा बनाना चाहिए? – Wolf

उत्तर

8

मुझे भूतपूर्व रूपांतरणों के साथ-साथ पूरी तरह से बग द्वारा प्रस्तुत प्रदर्शन हिट द्वारा अतीत में काटा गया है। तो मैं हमेशा सभी रचनाकारों का उपयोग करता हूं जो कि मैं निहित रूपांतरणों में भाग नहीं लेना चाहता हूं ताकि संकलक मुझे मेरी त्रुटियों को पकड़ने में मदद कर सके - और फिर मैं हमेशा "// निहित इरादा" टिप्पणी भी जोड़ने की कोशिश करता हूं ctors जहां मैं स्पष्ट रूप से उनके लिए ctors रूपांतरित रूपांतरित करने के रूप में इस्तेमाल करने का इरादा रखता हूं। मुझे लगता है कि इससे मुझे कम आश्चर्य के साथ और सही कोड लिखने में मदद मिलती है।

... तो मैं कहूंगा "हाँ, explicit जोड़ें" - लंबे समय तक आप खुश होंगे कि आपने ऐसा किया - मैंने यही किया जब मैंने पहली बार इसके बारे में सीखा, और मुझे खुशी है कि मैंने किया।

+1

इसे देखने के लिए धन्यवाद। बीटीडब्ल्यू: यदि आप केवल एक टिप्पणी का उपयोग करते हैं तो cppcheck अभी भी इसके बारे में चेतावनी देगा। इसकी चेतावनियों को अक्षम करने के लिए, मैं इनलाइन-दमन का उपयोग करता हूं, इसलिए मेरे पास जानबूझकर निहित रूपांतरणों के बारे में एक कार्यात्मक टिप्पणी है। (अब तक मेरा पसंदीदा उत्तर ;-)) – Wolf

संबंधित मुद्दे