2011-11-27 14 views
19

मुझे यकीन है कि मैंने कहीं भी एक आधिकारिक स्रोत पर पढ़ा है (मुझे विश्वास है कि यह डब्लूजी 21 पृष्ठों पर था) कि सी ++ 03 सी ++ 98 का ​​एक तकनीकी शुभकामनाएं नहीं थी, लेकिन यह एक नई रिलीज थी सी ++ मानक।क्या सी ++ 03 सी ++ मानक का एक नया संस्करण है या सी ++ 98 का ​​सिर्फ एक तकनीकी कोर्रिजेंडम (टीसी) है?

लेकिन फिर भी मुझे केवल -std=c++98 जीसीसी में स्विच और अन्य कंपाइलर्स और अल्फ पी स्टीनबाक ने few comments पर संकेत दिया कि यह वास्तव में सी ++ 98 का ​​टीसी हो सकता है।

तो जब मैं "सी ++ 03" के बारे में लिख रहा हूं, तो क्या यह सी ++ 98 का ​​उल्लेख करने के लिए पर्याप्त है? संबंधित प्रश्न के रूप में, क्या यह "सी ++ 03" शब्द का उपयोग करने के लिए गलत है? क्योंकि मुझे लगता है कि यह वास्तव में सी ++ 98 टीसी 1 है, तो ऐसा लगता है कि इसे सी ++ 03 नहीं कहा जा सकता है। जैसा कि मैंने कभी नहीं देखा है कि किसी ने C99TC3 रिलीज के लिए C07 लिखा है।

+1

यह पदार्थ अभ्यास में क्यों है? – Mat

+5

@मैट मैं सही पाठ लिखना चाहता हूं। –

+2

आईएसओ/आईईसी 14882: 2003 आईएसओ/आईईसी 14882 का दूसरा संस्करण है, पिछला एक 14882: 1998 है। दोनों प्रकाशित हैं, एएनएसआई अनुमोदित, मानकों। 2003 के अनुसार आगे: "यह दूसरा संस्करण पहले संस्करण को रद्द और बदल देता है ..."। – Mat

उत्तर

7

हां और नहीं।

सी ++ 03 (आईएसओ सी ++ 14882: 2003) अपने आप में एक मानक है, और यह "बस" टीसी 1 भी है क्योंकि यह केवल सी ++ 98 सुधार के सेट के साथ संशोधित है।

आप कह सकते हैं कि सी ++ 03 सी ++ 98 का ​​इरादा था, सी ++ 98 का ​​वास्तविक शब्द यह कहने के लिए संशोधित किया गया था कि इसका क्या मतलब था।

the committee's own words में:

“ आईएसओ/आईईसी 14882 के पहले संस्करण में 1998 एक तकनीकी शुद्धिपत्र प्रकाशित किया गया था 2003 में अनुमोदित किया गया था,। और मानक 2003 संस्करण के रूप में फिर से प्रकाशित किया गया था। ”

वहां की अतिरिक्त अवधि का शाब्दिक रूप से उद्धृत किया गया है।

“ मानक की आधिकारिक रिलीज के बाद कुछ वर्षों के लिए, समिति दोष रिपोर्ट संसाधित:

Wikipedia के शब्दों में (अगर यह ’ गलत है जो एक अधिकार नहीं है, लेकिन समाधान हो गया होगा) , और सी ++ मानक, आईएसओ/आईईसी 14882 के सही संस्करण प्रकाशित: 2003, 2003. ”

एक में तर्क कर सकता है, तथापि, कि मूल्य प्रारंभ एक नई बात थी और न सिर्फ एक कोर rection। और कोई तर्क दे सकता है कि तकनीकी कोर्रिजेंडम में केवल सुधारों का समावेश होता है, जबकि उन सुधारों के साथ संशोधित मानक एक अलग बात है, एक नया मानक। इन दोनों बिंदुओं को संदर्भ रूप से समझ में आता है, जैसा कि मैंने इसे देखा है, हालांकि पूर्ण संदर्भ-स्वतंत्र बयान के रूप में नहीं।

+0

तो समिति का कहना है कि * उन्होंने * इसे टीसी के रूप में अनुमोदित किया लेकिन आईएसओ ने गैर-टीसी नए मानक को बाहर कर दिया? –

+0

@ जोहान्स: नहीं, वे "गैर-टीसी" नहीं कहते हैं। सी ++ 03, मृत पेड़ संस्करण के पीछे के कवर के शब्दों में है, "पूर्ण, वर्तमान अंतर्राष्ट्रीय सी ++ मानक तकनीकी कोर्रिजेंडम 1/मानक मानक शामिल है/यह तकनीकी रूप से बीएस आईएसओ/आईईसी 14882: 2003 (द्वितीय संस्करण) है जिसे सभी द्वारा अनुमोदित किया गया है राष्ट्रीय मानक निकाय (जैसे एएनएसआई)। यह मानक का केवल उपलब्ध बाध्य संस्करण है। " मुझे यकीन नहीं है कि बीएस में क्या मतलब है, यद्यपि। –

+0

@ AlfP.Steinbach: ब्रिटिश मानक। बीएसआई जहां एकमात्र मानदंड निकाय एक बाध्य मृत पेड़ संस्करण AFAIK प्रकाशित करने के लिए। –

2

यह एक बिल्कुल नया मानक है। मेरा मानना ​​है कि यह केवल एक टीसी के रूप में शुरू हुआ, यही कारण है कि भ्रम होता है, और यह निश्चित रूप से प्रभावी रूप से बस एक बगफिक्स रिलीज है। हालांकि, परिवर्तन थे और यह जानने के लायक है कि आप 98 या 03 के बारे में बात कर रहे हैं या नहीं।

+1

"हालांकि, इसमें बदलाव हुए थे और यह जानना उचित है कि आप 98 या 03 के बारे में बात कर रहे हैं या नहीं।": जैसे? – akappa

+1

@akappa: 'std :: vector' केवल उदाहरण के लिए 03 में शुरू होने वाले तत्वों की आवश्यकता होती है। मैं असहमत हूं हालांकि यह बहुत मायने रखता है। कोई भी जो इस बारे में परवाह करता है कि सी ++ 98 का ​​व्यवहार पहले से ही यह जानने की स्थिति में होगा कि उन्हें यह निर्दिष्ट करना चाहिए। कोई भी "सी ++" के बारे में पूछ रहा है शायद एक व्यावहारिक उत्तर की तलाश में है, और इसलिए वर्तमान मानक के व्यवहार को जानना चाहता है, और उनका संकलक क्या समर्थन करेगा। चूंकि हम अब सी ++ 11 पर हैं, सी ++ 98 ऐसे प्रश्नों के लिए प्रभावी रूप से अप्रासंगिक है। – GManNickG

+1

@GManNickG सवाल स्पष्ट रूप से सी ++ 03 बनाम सी ++ 98 के बारे में पूछ रहा है, न केवल "सी ++"। भेद अप्रासंगिक से बहुत दूर है - विरासत सॉफ्टवेयर yadda yadda। –

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