2012-05-24 10 views
5

टेम्पलेट्स के साथ संकलन त्रुटियां अकसर अस्पष्ट होती हैं और आसानी से समझ नहीं आती हैं जब तक कि कोई वास्तव में टेम्पलेट्स से अच्छी तरह से ज्ञात न हो। कई बार एक विशेषज्ञ प्रोग्रामर भी इनके द्वारा flummoxed हो सकता है। मुझे यकीन है कि हम में से अधिकांश ने इसे कई बार चुरा लिया है।टेम्पलेट्स के साथ अधिक सटीक नैदानिक ​​त्रुटि संदेश?

मैं समझता हूँ के रूप में सी ++ मानक केवल एक बीमार का गठन कार्यक्रम के लिए एक नैदानिक ​​प्रदान करने के लिए कार्यान्वयन जनादेश नहीं बल्कि कैसे या क्या नैदानिक ​​संदेश प्रदान की जाएगी।
हालांकि, क्या टेम्पलेट्स के मामले में निदान (विशेष रूप से) आसानी से समझने की इस समस्या को दूर करने के लिए मानक समिति द्वारा निर्धारित कोई दिशानिर्देश नहीं हैं। क्या यह कभी भी चर्चा के लिए आया है? इसके अलावा, मुख्यधारा के कार्यान्वयन इस मुद्दे के बारे में कुछ करने या योजना बनाने के लिए हैं?

प्रश्न चर्चा के लिए काफी खुला है लेकिन एसओ सी ++ समुदाय सबसे सक्रिय सी ++ समुदायों में से एक है, मुझे यकीन है कि किसी के पास कहीं कम से कम कुछ विचार होना चाहिए। इसके अलावा, कुछ मानक समिति के सदस्यों (मुझे पता है) सी ++ टैग पर सक्रिय रूप से भाग लेते हैं, मुझे उम्मीद है कि अगर एट अल पर इस पर कुछ जानकारी हो सकती है।

+0

क्लैंग ++ इसके लिए एक अच्छा टूल है। त्रुटि संदेश जी ++ की तुलना में बहुत बेहतर है और जिन्हें मैं वीएस2005 से याद करता हूं (मैंने वीएस का व्यापक रूप से उपयोग नहीं किया है)। –

+1

आपके प्रश्न का उत्तर [अवधारणाओं] (http://en.wikipedia.org/wiki/Concepts_%28C%2B%2B%29) है। दुर्भाग्यवश, वे सी ++ 11 के लिए तैयार नहीं थे। –

उत्तर

5

आप दो अलग पूछ रहे हैं प्रशन।

सबसे पहले, हाँ, मुख्यधारा के कार्यान्वयन इसके बारे में कुछ कर रहे हैं। यह g ++ या msvc के लिए शीर्ष प्राथमिकता नहीं हो सकता है, लेकिन वे एकमात्र मुख्यधारा के कार्यान्वयन नहीं हैं। यह क्लैंग के पीछे डिजाइन लक्ष्यों में से एक था (http://clang.llvm.org/diagnostics.html देखें), और कम से कम किसी बिंदु पर इंटेल ने आईएस ++ पर आईसी ++ के लिए विक्रय बिंदु के रूप में बेहतर टेम्पलेट त्रुटियों को सूचीबद्ध किया।

दूसरा, मानक समिति के लोगों ने विस्तार से इस पर चर्चा की, और ज्यादातर सहमत थे कि अवधारणाएं उत्तर का एक बड़ा हिस्सा थे, जिसका प्रभावी अर्थ यह है कि इसे भविष्य में बंद कर दिया गया है क्योंकि सी ++ 11 से अवधारणाओं को हटा दिया गया था मानक।

3

यह निश्चित रूप से एक समस्या है, खासकर जब लोग मेटाक्लास के साथ मुश्किल सामान करना शुरू करते हैं। एकमात्र टूल जो मुझे पता है वह थोड़ा सा मदद करता है stlfilt, जो "एसटीएल से संबंधित डायग्नोस्टिक्स पर ध्यान केंद्रित करने के साथ लंबी हवा वाली सी ++ त्रुटि और चेतावनी संदेशों को सरल बनाता है और/या सुधार करता है"

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