2011-01-20 11 views
10

पीछा कर रहा है एक पैटर्न मैं कभी कभी अपने छात्रों के कोड में देख के एक सरलीकृत संस्करण:क्या मैं एक विशिष्ट चेतावनी को एक त्रुटि के रूप में देख सकता हूं?

bool foobar(int a, int b) 
{ 
    if (a < b) return true; 
} 

वास्तविक कोड अधिक निश्चित रूप से जटिल है। विजुअल स्टूडियो एक चेतावनी रिपोर्ट करता है C4715 (सभी नियंत्रण पथ एक मान वापस नहीं करते हैं), और मैं त्रुटियों के रूप में सभी चेतावनियों C4715 का इलाज करना चाहता हूं। क्या यह संभव है?

+4

निश्चित रूप से आपको सभी चेतावनियों को त्रुटियों के रूप में देखना चाहिए। :) – GManNickG

+0

@GMan: हालांकि सामान्य मामले में मैं सहमत हूं। कभी-कभी विशिष्ट चीजों में सक्षम होना आवश्यक होता है। –

उत्तर

34

यह चाल करना चाहिए: #pragma warning (error: 4715)
या /we4715 कमांड लाइन विकल्प (देखें /w, /W0, /W1, /W2, /W3, /W4, /w1, /w2, /w3, /w4, /Wall, /wd, /we, /wo, /Wv, /WX (Warning Level) (टॉम सिगरदास की सौजन्य))।

+0

क्या परियोजना में गिनती या किसी भी परियोजना के लिए 'प्रज्ञा' की सभी फाइलों में होना चाहिए? – TankorSmash

+2

प्रलेखन: [/ डब्ल्यू,/डब्ल्यूएन,/डब्ल्यूएक्स,/वॉल,/डब्ल्यूएलएन,/डब्ल्यूडीएन,/वेन,/जीता (चेतावनी स्तर)] (https://msdn.microsoft.com/en-us/library/thxezb7y .aspx) –

+0

@TomSirgedas प्रलेखन लिंक के लिए धन्यवाद। –

2

संकलक चेतावनी स्तर को स्तर 4 (विजुअल स्टूडियो में) पर सेट करें और यह सभी चेतावनियों को त्रुटियों के रूप में पेश करेगा। यह अच्छा अभ्यास है कि आपके छात्र बिना किसी चेतावनी के अपने कोड को संकलित करें और कोई त्रुटि न हो :)

इसके अलावा,/WX कंपाइलर विकल्प चालू करें।

+2

नहीं, यह नहीं होगा। जब तक आप इसे नहीं बताते हैं। दोनों को सेट करने के लिए यह एक अच्छा अभ्यास है, लेकिन स्तर 4 पर सेट करना चेतावनी पर त्रुटि उत्पन्न करने के लिए पर्याप्त नहीं है। –

+0

आपको निश्चित रूप से '/ WX' (त्रुटियों के रूप में चेतावनियों का इलाज) की आवश्यकता है। – bobbogo

+0

मैं/डब्ल्यूएक्स विकल्प का उल्लेख करना भूल गया। ठीक करने के लिए संपादित किया गया। –

1

हाँ,/we4715 मेरे लिए काम करता है। विजुअल स्टूडियो 2013 में वैसे भी, यह यूआई में प्रोजेक्ट सेटिंग्स -> कॉन्फ़िगरेशन प्रॉपर्टीज -> सी/सी ++ -> उन्नत -> त्रुटियों के रूप में विशिष्ट चेतावनियों का इलाज करता है। "4715" जोड़ें। हाँ, वह पागल है, वे सी ++ मानक में क्या सोच रहे हैं? शायद कुछ (खराब) विरासत कोड की आवश्यकता है। कम से कम एक फिक्स है।

डॉक्स: http://msdn.microsoft.com/en-us/library/thxezb7y.aspx

और हाँ, उस पृष्ठ VS2013 के लिए गलत यूआई संपत्ति सूचीबद्ध करता है। क्योंकि एमएसडीएन बहुत अच्छा है!

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