खोज…


परिचय

1998 में, C ++ को आंतरिक रूप से मानकीकृत भाषा बनाने वाले मानक का पहला प्रकाशन हुआ। उस समय से, C ++ विकसित हुई है, जिसके परिणामस्वरूप C ++ की विभिन्न बोलियाँ हैं। इस पृष्ठ पर, आप पिछले संस्करण की तुलना में सभी विभिन्न मानकों और उनके परिवर्तनों का अवलोकन पा सकते हैं। अधिक विशिष्ट पृष्ठों पर इन सुविधाओं का उपयोग करने के तरीके का विवरण दिया गया है।

टिप्पणियों

जब C ++ का उल्लेख किया जाता है, तो अक्सर "मानक" के लिए एक संदर्भ बनाया जाता है। लेकिन वास्तव में वह मानक क्या है?

C ++ का एक लंबा इतिहास है। बेल लैब्स के भीतर ब्रेज़न स्ट्रॉस्ट्रप द्वारा एक छोटी परियोजना के रूप में शुरू किया गया, 90 के दशक की शुरुआत में यह काफी लोकप्रिय हो गया था। कई कंपनियां C ++ कंपाइलर बना रही थीं ताकि उपयोगकर्ता अपने C ++ कंपाइलर को कंप्यूटर की एक विस्तृत श्रृंखला पर चला सकें। लेकिन इसे सुविधाजनक बनाने के लिए, इन सभी प्रतिस्पर्धी कंपाइलरों को भाषा की एक एकल परिभाषा साझा करनी चाहिए।

उस समय, सी भाषा को सफलतापूर्वक मानकीकृत किया गया था। इसका मतलब है कि भाषा का एक औपचारिक विवरण लिखा गया था। यह अमेरिकी राष्ट्रीय मानक संस्थान (एएनएसआई) को प्रस्तुत किया गया था, जिसने 1989 में समीक्षा के लिए दस्तावेज खोला और बाद में इसे प्रकाशित किया। एक साल बाद, अंतर्राष्ट्रीय मानक संगठन (क्योंकि इसमें अलग-अलग भाषाओं के अलग-अलग शब्द होंगे जो उन्होंने एक रूप को चुना था। , आईएसओ, ग्रीक आइसोस से लिया गया, जिसका अर्थ है बराबर।) ने अंतर्राष्ट्रीय मानक के रूप में अमेरिकी मानक को अपनाया।

सी ++ के लिए, यह शुरू से ही स्पष्ट था कि एक अंतरराष्ट्रीय हित था। आईएसओ के भीतर एक कार्यसमूह शुरू किया गया था (जिसे डब्ल्यूजी 21 के रूप में जाना जाता है, सबकोमिटाइट 22 के भीतर)। इस कार्यसमूह ने 1995 के आसपास पहले मानक का मसौदा तैयार किया था। लेकिन जैसा कि हम प्रोग्रामर जानते हैं, अंतिम मिनट की विशेषताओं की तुलना में नियोजित डिलीवरी के लिए अधिक खतरनाक नहीं है, और यह C ++ के साथ भी हुआ। 1995 में, STL नाम की एक शांत नई लाइब्रेरी सामने आई, और WG21 में काम करने वाले लोगों ने C ++ ड्राफ्ट मानक में एक स्लिम-डाउन संस्करण जोड़ने का फैसला किया। स्वाभाविक रूप से, इससे समय सीमा समाप्त हो गई और केवल 3 साल बाद दस्तावेज़ अंतिम हो गया। आईएसओ एक बहुत ही औपचारिक संगठन है, इसलिए सी ++ मानक को आईएसओ / आईईसी 14882 के बहुत ही विपणन योग्य नाम के साथ नामांकित नहीं किया गया था। जैसा कि मानकों को अद्यतन किया जा सकता है, यह सटीक संस्करण 14882: 1998 के रूप में जाना जाता है।

और वास्तव में स्टैंडर्ड को अपडेट करने की मांग थी। मानक एक बहुत मोटा दस्तावेज है, जिसका उद्देश्य वास्तव में यह वर्णन करना है कि C ++ कंपाइलरों को कैसे काम करना चाहिए। यहां तक कि थोड़ी अस्पष्टता भी फिक्सिंग के लायक हो सकती है, इसलिए 2003 तक 14882: 2003 के रूप में एक अपडेट जारी किया गया था। हालाँकि, इसने C ++ में कोई सुविधा नहीं जोड़ी; नए फीचर्स को दूसरे अपडेट के लिए शेड्यूल किया गया था।

अनौपचारिक रूप से, इस दूसरे अपडेट को C ++ 0x के रूप में जाना जाता था, क्योंकि यह ज्ञात नहीं था कि यह 2008 या 2009 तक ले जाएगा। वैसे - उस संस्करण में भी थोड़ी देरी हुई, यही कारण है कि यह 14882: 2011 बन गया।

सौभाग्य से, WG21 ने फिर से ऐसा न होने देने का फैसला किया। C ++ 11 को अच्छी तरह से प्राप्त किया गया था और C ++ में नए सिरे से रुचि रखने दिया। इसलिए, गति को बनाए रखने के लिए, तीसरा अपडेट 3 साल में प्रकाशन से लेकर 14882: 2014 बनने तक चला गया।

वहां भी काम नहीं रुका। C ++ 17 मानक प्रस्तावित किया गया है और C ++ 20 के लिए काम शुरू कर दिया गया है।

वर्तमान कार्य ड्राफ्ट

सभी प्रकाशित आईएसओ मानक आईएसओ स्टोर ( http://www.iso.org ) से बिक्री के लिए उपलब्ध हैं। C ++ मानकों के कार्य ड्राफ्ट सार्वजनिक रूप से मुफ्त में उपलब्ध हैं।

मानक के विभिन्न संस्करण:

सी ++ 11

C ++ 11 मानक C ++ मानक का एक प्रमुख विस्तार है। नीचे आप बदलावों का अवलोकन पा सकते हैं क्योंकि उन्हें अधिक विस्तृत दस्तावेज़ीकरण के लिंक के साथ आइसोकैप एफएक्यू पर समूहीकृत किया गया है।

भाषा एक्सटेंशन

सामान्य विशेषताएं

कक्षाएं

  • = डिफ़ॉल्ट और = हटाएं
  • डिफ़ॉल्ट चाल और प्रतिलिपि का नियंत्रण
  • निर्माण करने वाले प्रतिनिधि
  • इन-क्लास सदस्य शुरुआती
  • इनहेरिट किए गए कंस्ट्रक्टर
  • ओवरराइड नियंत्रण: ओवरराइड
  • ओवरराइड नियंत्रण: अंतिम
  • स्पष्ट रूपांतरण ऑपरेटर

अन्य प्रकार

  • एनम वर्ग
  • लंबा लंबा - एक लंबा पूर्णांक
  • विस्तारित पूर्णांक प्रकार
  • सामान्यीकृत यूनियनें
  • सामान्यीकृत PODs

टेम्पलेट्स

  • बाहरी टेम्पलेट
  • टेम्पलेट उपनाम
  • वैरेडिक टेम्प्लेट
  • टेम्पलेट तर्क के रूप में स्थानीय प्रकार

संगामिति

विविध भाषा सुविधाएँ

  • C ++ 11 के लिए __cplusplus का मूल्य क्या है?
  • प्रत्यय वापसी प्रकार सिंटैक्स
  • संकीर्णता को रोकना
  • समकोण कोष्ठक
  • static_assert संकलन-समय अभिकथन
  • कच्चे स्ट्रिंग शाब्दिक
  • गुण
  • संरेखण
  • C99 सुविधाएँ

लाइब्रेरी एक्सटेंशन

सामान्य

  • unique_ptr
  • shared_ptr
  • weak_ptr
  • कचरा संग्रहण ए.बी.आई.
  • टपल
  • प्रकार लक्षण
  • समारोह और बाँध
  • नियमित अभिव्यक्ति
  • समय उपयोगिताएँ
  • यादृच्छिक संख्या पीढ़ी
  • आबंटित आवंटनकर्ता

कंटेनर और एल्गोरिदम

  • एल्गोरिदम में सुधार
  • कंटेनर में सुधार
  • unordered_ * कंटेनर
  • std :: सरणी
  • forward_list

संगामिति

सी ++ 14

C ++ 14 मानक को अक्सर C ++ 11 के लिए बगफिक्स के रूप में संदर्भित किया जाता है। इसमें केवल उन परिवर्तनों की एक सीमित सूची है जिनमें अधिकांश C ++ 11 में नई सुविधाओं के लिए एक्सटेंशन हैं। नीचे आप बदलावों का अवलोकन पा सकते हैं क्योंकि उन्हें अधिक विस्तृत दस्तावेज़ीकरण के लिंक के साथ आइसोकैप एफएक्यू पर समूहीकृत किया गया है।

भाषा एक्सटेंशन

लाइब्रेरी एक्सटेंशन

पदावनत / हटाया गया

  • std::gets को C ++ 11 में हटा दिया गया और C ++ 14 से हटा दिया गया
  • std::random_shuffle को पदावनत किया जाता है

सी ++ 17

C ++ 17 मानक सुविधा पूर्ण है और मानकीकरण के लिए प्रस्तावित किया गया है। इन सुविधाओं के लिए प्रायोगिक समर्थन वाले कंपाइलरों में, इसे आमतौर पर C ++ 1z के रूप में संदर्भित किया जाता है।

भाषा एक्सटेंशन

लाइब्रेरी एक्सटेंशन

सी ++ 03

C ++ 03 मानक मुख्य रूप से C ++ 98 मानक के दोष रिपोर्ट को संबोधित करता है। इन दोषों के अलावा, यह केवल एक नई सुविधा जोड़ता है।

भाषा एक्सटेंशन

सी ++ 98

C ++ 98 C ++ का पहला मानकीकृत संस्करण है। जैसा कि इसे C के विस्तार के रूप में विकसित किया गया था, C से C ++ को अलग करने वाली कई विशेषताएं जोड़ी गई हैं।

भाषा एक्सटेंशन (C89 / C90 के संबंध में)

  • कक्षाएं, व्युत्पन्न कक्षाएं, आभासी सदस्य फ़ंक्शंस, कास्ट सदस्य फ़ंक्शंस
  • फंक्शन ओवरलोडिंग, ऑपरेटर ओवरलोडिंग
  • एकल पंक्ति टिप्पणियाँ (C99 मानक के साथ C-upsague में पेश की गई हैं)
  • संदर्भ
  • नया और हटाएं
  • बूलियन प्रकार (C99 मानक के साथ सी-लेग में पेश किया गया है)
  • टेम्पलेट्स
  • नामस्थान
  • अपवाद
  • विशिष्ट जाति

लाइब्रेरी एक्सटेंशन

  • मानक टेम्पलेट लाइब्रेरी

सी ++ 20

C ++ 20, C ++ का आगामी मानक है, जो वर्तमान में विकास में है, C ++ 17 मानक पर आधारित है। यह प्रगति आधिकारिक आईएसओ सीपीपी वेबसाइट पर देखी जा सकती है।

निम्नलिखित विशेषताएं बस वही हैं जो 2020 के लिए लक्षित सी ++ मानक की अगली रिलीज के लिए स्वीकार किया गया है।

भाषा एक्सटेंशन

अभी इसके लिए कोई भाषा एक्सटेंशन स्वीकार नहीं किया गया है।

लाइब्रेरी एक्सटेंशन

अभी कोई भी लाइब्रेरी एक्सटेंशन स्वीकार नहीं किया गया है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow