C23 (C मानक संशोधन)

From Vigyanwiki
Revision as of 11:12, 18 August 2023 by Manidh (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

C23 उस चीज़ का अनौपचारिक नाम है जो संभवतः ISO/IEC 9899:2024 बन जाएगा, C (प्रोग्रामिंग भाषा) के लिए नेक्स्ट स्टैण्डर्ड, जो C17 (स्टैण्डर्ड ISO/IEC 9899:2018) का स्थान लेगा।[1] इसे 2016 में अनौपचारिक रूप से C2x के रूप में प्रारम्भ किया गया था,[2] और 2024 में प्रकाशित होने की उम्मीद है।[3] C23 का सबसे लेटेस्ट सार्वजनिक रूप से उपलब्ध कार्यशील ड्राफ्ट 1 अप्रैल, 2023 को प्रकाशित किया गया था।[4] C2x ड्राफ्ट के लिए पहली WG14 बैठक अक्टूबर 2019 में आयोजित की गई थी,[5] 2020 में कोविड-19 महामारी के कारण वर्चुअल रिमोट बैठकें आयोजित की गईं, फिर 2023 तक विभिन्न टेलीकांफ्रेंस बैठकें होती रहीं।

फीचर

C23 के नवीनतम वर्किंग ड्राफ्ट में इंटीग्रेटेड परिवर्तन नीचे सूचीबद्ध हैं।[4]

स्टैण्डर्ड लाइब्रेरी

नये फंक्शन

  • सेंसिटिव डेटा को मिटाने के लिए <string.h> में memset_explicit() फ़ंक्शन जोड़ें, जहाँ अनुकूलन की केयर किए बिना मेमोरी स्टोर सदैव किया जाना चाहिए।[6]
  • स्ट्रिंग्स को कुशलतापूर्वक संयोजित करने के लिए <string.h> मेंmemccpy() फ़ंक्शन जोड़ें - POSIX और SVID C एक्सटेंशन के समान।[7]
  • स्ट्रिंग की एक प्रति आवंटित करने के लिए <string.h> में strndup() औरstrdup() फ़ंक्शन जोड़ें - POSIX और SVID C एक्सटेंशन के समान।[8]
  • पॉइंटर के बाइट संरेखण को निर्धारित करने के लिए <stdlib.h> में memalignment() फ़ंक्शन जोड़ें।[9]
  • कई पूर्णांक प्रकारों की जांच करने के लिए नए हेडर <stdbit.h> में बिट उपयोगिता फ़ंक्शंस / मैक्रोज़ / प्रकार जोड़ें। लीगेसी कोड और तृतीय पक्ष लाइब्रेरीज़ के साथ टकराव को कम करने के लिए सभी stdc से प्रारंभ होते हैं।[10]
    • निम्नलिखित में, पाँच फ़ंक्शन नामों के लिए * को uc, us, ui, ul, ullसे बदलें, या टाइप-जेनेरिक मैक्रो के लिए रिक्त स्थान दें।[10]
    • मान में 1 या 0 बिट्स की संख्या गिनने के लिए stdc_count_ones*() और stdc_count_zeros*() जोड़े।[10]
    • मूल्य में अग्रणी 1 या 0 बिट्स की गणना करने के लिए stdc_leading_ones*() और stdc_leading_zeros*() जोड़।[10]
    • मान में 1 या 0 बिट्स की गणना करने के लिए stdc_trailing_ones*() और stdc_trailing_zeros*() जोड़े।[10]
    • 1 या 0 मान के साथ पहला अग्रणी बिट खोजने के लिए stdc_first_leading_one*() और stdc_first_leading_zero*() जोड़े ।[10]
    • 1 या 0 मान वाले पहले अनुगामी बिट को खोजने के लिए stdc_first_trailing_one*() और stdc_first_trailing_zero*() जोड़े।[10]
    • यह निर्धारित करने के लिए stdc_has_single_bit*() जोड़ें कि क्या मान 2 की सटीक शक्ति है (केवल 1 बिट होने पर ही सही लौटें)।।[10]
    • 2 की सबसे बड़ी अभिन्न शक्ति निर्धारित करने के लिए stdc_bit_floor*() जोड़ें जो मान से अधिक न हो।[10]
    • 2 की सबसे छोटी अभिन्न शक्ति निर्धारित करने के लिए stdc_bit_ceil*() जोड़ें जो मान से कम न हो है।[10]
    • किसी मान को दर्शाने के लिए बिट्स की संख्या निर्धारित करने के लिए stdc_bit_width*() जोड़े।[10]
    • समय संरचना को कैलेंडर समय मान में बदलने के लिए timegm() में <time.h> - glibc और musl लाइब्रेरीज़ में फ़ंक्शन के समान।[11]

एक्सिस्टिंग फंक्शन

  • printf() फ़ंक्शन परिवार में %b बाइनरी रूपांतरण विनिर्देशक जोड़ें, 0B के साथ गैर-शून्य मान जोड़ें ,%x कैसे काम करता है। वे कार्यान्वयन जो पहले %B को अपने स्वयं के एक्सटेंशन के रूप में उपयोग नहीं करते थे, उन्हें 0b के साथ गैर-शून्य मानों को लागू करने और जोड़ने के लिए प्रोत्साहित किया जाता है, जैसे कि %X कैसे काम करता है।[12]
  • scanf() फ़ंक्शन फ़ैमिली में %b बाइनरी रूपांतरण विनिर्देशक जोड़ें।[12]
  • strtol()और wcstol() फ़ंक्शन परिवारों में0b और 0B बाइनरी रूपांतरण समर्थन जोड़ें।[12]
  • फ़ंक्शन बनाएं bsearch(), bsearch_s(), memchr(), strchr(), strpbrk(), strrchr(), strstr(), और उनके व्यापक समकक्ष wmemchr(), wcschr(), wcspbrk(), wcsrchr(), wcsstr() एक स्थिर स्थिर वस्तु वापस आ गई है यदि कोई उन्हें पास नहीं किया गया था।[13]

प्रीप्रोसेसर

  • ऐड #elifdef और #elifndef प्रक्रमण करने से पहले के निर्देश[14] मूलतः #elif defined और #elif !defined.समकक्ष हैं। दोनों निर्देश C++23 मानक और जीएनयू कंपाइलर संग्रह 12 कंपाइलर में भी जोड़े गए थे।[15]
  • बाइनरी संसाधन समावेशन के लिए #embed निर्देश जोड़े और __has_embed प्रीप्रोसेसर निर्देशों द्वारा संसाधन की उपलब्धता की जाँच करने की अनुमति दे।[16]
  • निदान के लिए #warning निर्देश जोड़े।[17]
  • प्रीप्रोसेसर निर्देशों द्वारा हेडर की उपलब्धता की जांच करने की अनुमति देने के लिए __has_include जोड़े।[18]
  • __has_c_attribute जोड़ें, जिससे प्रीप्रोसेसर निर्देशों द्वारा किसी विशेषता की उपलब्धता की जाँच की जा सके।[19] (नई विशेषता सुविधा के लिए C++ संगतता समूह देखें)
  • विविध मैक्रोज़ के लिए __VA_OPT__ कार्यात्मक मैक्रो जो अपने तर्क तक विस्तारित होता है केवल तभी जब एक वैरिएडिक तर्क युक्त मैक्रो को पारित किया गया हो।[20]

प्रकार

  • nullptr_t जोड़ें|nullptr_t, एक शून्य सूचक प्रकार।[21]* जोड़ना _BitInt(N) और unsigned _BitInt(N) बिट-सटीक पूर्णांकों के लिए प्रकार। जोड़ना BITINT_MAXWIDTH अधिकतम बिट चौड़ाई के लिए मैक्रो।[22][23] जोड़ना ckd_add(), ckd_sub(), ckd_mul() जाँचे गए पूर्णांक संचालन के लिए मैक्रोज़।[24]
  • वेरिएबल-संशोधित प्रकार (लेकिन वेरिएबल-लंबाई सरणी नहीं जो स्टैक पर स्वचालित_वेरिएबल आवंटित होते हैं) एक अनिवार्य सुविधा बन जाते हैं।[25]
  • उपयोग के लिए बेहतर समर्थन const सरणियों के साथ.[26]
  • का मानकीकरण typeof(...) ऑपरेटर।[27]
  • का अर्थ auto कीवर्ड को प्रकार के अनुमान के कारण बदल दिया गया था, जबकि एक प्रकार के साथ उपयोग किए जाने पर स्टोरेज क्लास विनिर्देशक के पुराने अर्थ को भी बरकरार रखा गया था। C++ के विपरीत, C23 केवल ऑब्जेक्ट परिभाषाओं के लिए प्रकार अनुमान की अनुमति देता है (कोई अनुमान फ़ंक्शन रिटर्न प्रकार या फ़ंक्शन पैरामीटर प्रकार नहीं)।[28]
  • एक ही टैग के साथ संगत प्रकार की पुनर्घोषणा की अनुमति देने के लिए संरचना, संघ और प्रगणित प्रकारों के लिए संगतता नियमों को बदल दिया गया था।[29]

स्थिरांक

  • nullptr जोड़ें|nullptr के लिए स्थिरांक nullptr_t प्रकार।[21]
  • जोड़ना wb और uwb के लिए पूर्णांक शाब्दिक प्रत्यय _BitInt(N) और unsigned _BitInt(N) प्रकार,[30] जैसे कि 6uwb एक उपज देता है unsigned _BitInt(3), और -6wb एक उपज देता है signed _BitInt(4) जिसमें तीन वैल्यू बिट और एक साइन बिट है।
  • जोड़ना 0b और 0B पूर्णांक शाब्दिक उपसर्ग,[31] जैसे कि 0b10101010 (0xAA के बराबर)।
  • जोड़ना ' शाब्दिक स्थिरांक के लिए अंक विभाजक,[32] जैसे कि 0xFE'DC'BA'98 (0xFEDCBA98 के बराबर), 299'792'458 (प्रकाश की गति के बराबर), 1.414'213'562 (2|1.414213562 के वर्गमूल के बराबर)।
  • किसी के अंतर्निहित प्रकार को निर्दिष्ट करने की क्षमता जोड़ें enum.[33]
  • अनुमति देना enum में उन मानों को संग्रहीत करने के लिए कोई निश्चित अंतर्निहित प्रकार नहीं है जिन्हें प्रस्तुत नहीं किया जा सकता int.[34]

कीवर्ड

  • जोड़ना true और false कीवर्ड.[35]
  • जोड़ना alignas, alignof, bool, static_assert, थ्रेड-स्थानीय भंडारण|thread_local कीवर्ड. पहले से परिभाषित कीवर्ड वैकल्पिक वर्तनी बन जाते हैं: _Alignas, _Alignof, _Bool, _Static_assert, _Thread_local.[36]
  • जोड़ना _BitInt कीवर्ड (प्रकार समूह देखें)
  • जोड़ना typeof और typeof_unqual कीवर्ड (प्रकार समूह देखें)
  • जोड़ना nullptr कीवर्ड (स्थिरांक समूह देखें)
  • जोड़ना constexpr कीवर्ड (अन्य समूह देखें)
  • जोड़ना _Decimal32, _Decimal64, _Decimal128 (वैकल्पिक) दशमलव फ़्लोटिंग पॉइंट के लिए कीवर्ड|दशमलव फ़्लोटिंग-पॉइंट अंकगणित (अन्य समूह देखें)

सिंटेक्स

  • लेबल (कंप्यूटर विज्ञान) घोषणा (कंप्यूटर प्रोग्रामिंग) से पहले और कथन (कंप्यूटर विज्ञान) #कंपाउंड कथन के अंत में दिखाई दे सकता है।[37]
  • फ़ंक्शन परिभाषाओं में अनाम पैरामीटर।[38]
  • शून्य आरंभीकरण के साथ {} (CLAss के आरंभीकरण सहित)।[39]
  • विविध कार्यों को अब इलिप्सिस और से पहले नामित तर्क की आवश्यकता नहीं है va_start मैक्रो को अब दूसरे तर्क की आवश्यकता नहीं है और न ही यह पहले तर्क के मौजूद होने पर उसके बाद किसी तर्क का मूल्यांकन करता है।[40]
  • C++11 स्टाइल C++11#Attributes सिंटैक्स जोड़ें[41] दोहरे वर्गाकार कोष्ठकों का उपयोग करना [[]].
  • एकल-तर्क जोड़ें _Static_assert C++17 के साथ अनुकूलता के लिए।[42]
  • प्रोटोटाइप में सूचीबद्ध बिना किसी तर्क के कार्य करता है void foo() बिना किसी तर्क के समझा जाता है (K&R फ़ंक्शन घोषणाओं को हटाना देखें)

सी++ अनुकूलता

  • विभिन्न सिंटैक्स परिवर्तन C++ के साथ संगतता में सुधार करते हैं, जैसे घोषणाओं से पहले लेबल (कंप्यूटर विज्ञान), अनाम फ़ंक्शन तर्क, शून्य आरंभीकरण {}, नामित तर्क के बिना विविध कार्य, C++11 शैली विशेषताएँ, _Static_assert (सिंटेक्स देखें)। कंपाउंड स्टेटमेंट के अंत में लेबल (कंप्यूटर विज्ञान) के लिए C++23 में एक समान परिवर्तन किया गया था।[43]
  • C++-शैली विशेषताएँ जोड़ें (सिंटैक्स देखें)। विशेषताएँ जोड़ें [44] [[deprecated]],[45] [[fallthrough]],[46] [[maybe_unused]],[47] [[nodiscard]],[48] और [[noreturn]] C++11 के साथ संगतता के लिए विशेषता, फिर बहिष्कृत करें _Noreturn, noreturn, हेडर <stdnoreturn.h> C11 (C मानक संशोधन) में पेश की गई सुविधाएँ।[49] C++23 के साथ संगतता के लिए डुप्लिकेट विशेषताओं की अनुमति है।[50] सभी मानक विशेषताएँ दोहरे अंडरस्कोर से भी घिरी हो सकती हैं (उदा [[__deprecated__]] के बराबर है [[deprecated]]).
  • जोड़ना u8 C++17 के साथ संगतता के लिए UTF-8 एन्कोडिंग का प्रतिनिधित्व करने के लिए वर्ण शाब्दिक के लिए उपसर्ग।[51][52]
  • जोड़ना #elifdef और #elifndef C++23 के साथ संगतता के लिए प्रीप्रोसेसिंग निर्देश।[14](प्रीप्रोसेसर समूह देखें)

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

  • ISO/IEC 60559:2020 के लिए समर्थन, फ्लोटिंग-पॉइंट अंकगणित के लिए IEEE 754 का वर्तमान संस्करण, विस्तारित बाइनरी फ़्लोटिंग-पॉइंट अंकगणित और (वैकल्पिक) दशमलव फ़्लोटिंग-पॉइंट अंकगणित के साथ।[53][54]
  • constexpr e> वस्तुओं के लिए विनिर्देशक, लेकिन फ़ंक्शंस के लिए नहीं, constexpr (C++)|C++ के समकक्ष के विपरीत।[55]
  • जोड़ना char8_t UTF-8 एन्कोडेड डेटा को संग्रहीत करने के लिए टाइप करें और u8 वर्ण स्थिरांक और स्ट्रिंग अक्षर के प्रकार को बदलें char8_t. इसके अलावा, कार्य mbrtoc8() और c8rtomb() एक संकीर्ण मल्टीबाइट कैरेक्टर को क्रमशः UTF-8 एन्कोडिंग में और एक एकल कोड बिंदु को UTF-8 से एक संकीर्ण मल्टीबाइट कैरेक्टर प्रतिनिधित्व में परिवर्तित करने के लिए।[56]
  • वह सब स्पष्ट करें char16_t स्ट्रिंग्स और लिटरल यूटीएफ-16 एन्कोडेड होंगे, और सभी char32_t स्ट्रिंग्स और अक्षर UTF-32 एन्कोडेड होंगे, जब तक कि अन्यथा स्पष्ट रूप से निर्दिष्ट न किया गया हो।[57]
  • भंडारण वर्ग विनिर्देशकों को मिश्रित शाब्दिक परिभाषा में प्रदर्शित होने की अनुमति दें।[58]

अप्रचलित सुविधाएँ

कुछ पुरानी अप्रचलित सुविधाओं को C23 के कार्यशील मसौदे से या तो हटा दिया गया है या हटा दिया गया है:

  • डिग्राफ और ट्रिग्राफ हटाएं#सी।[59]
  • C_(प्रोग्रामिंग_भाषा)#K&R_C|K&R फ़ंक्शन परिभाषाएं/घोषणाएं हटाएं (फ़ंक्शन तर्कों के बारे में कोई जानकारी नहीं)।[60][61]
  • दो के पूरक के अलावा अन्य हस्ताक्षरित पूर्णांकों के लिए निरूपण हटाएँ। दो के पूरक हस्ताक्षरित पूर्णांक प्रतिनिधित्व की आवश्यकता होगी।[62]
  • *_HAS_SUBNORM}RM मैक्रोज़ में <float.h> अप्रचलित विशेषताएं हैं.[63]

संकलक समर्थन

जीएनयू कंपाइलर संग्रह 9,[64] बजना 9.0,[65] और एलसीसी_(कंपाइलर)#पेलेस_सी 11.00[66] कंपाइलर इस मानक का समर्थन करने के लिए एक प्रयोगात्मक कंपाइलर ध्वज लागू करते हैं।

यह भी देखें

संदर्भ

  1. "सी का इतिहास". cppreference.com. 2022-06-27. Archived from the original on October 19, 2022.
  2. "WG14-N2086 : C2x Charter". open-std.org. 2016-09-20. Archived from the original on December 22, 2022.
  3. "WG14-N3132 : Revised C23 Schedule" (PDF). open-std.org. 2023-06-04. Archived (PDF) from the original on June 9, 2023.
  4. 4.0 4.1 "WG14-N3096 : Draft for ISO/IEC 9899:2023" (PDF). open-std.org. April 1, 2023. Archived (PDF) from the original on April 2, 2023.
  5. "WG14-N2437 : Agenda for October 2019". open-std.org. 2019-10-21. Archived from the original on March 5, 2021.
  6. "WG14-N2897 : memset_explicit()". open-std.org. 2021-12-27. Archived from the original on October 25, 2022.
  7. "WG14-N2349 : Toward more efficient string copying and concatenation". open-std.org. 2019-03-18. Archived from the original on September 30, 2022.
  8. "WG14-N2353 : strdup() and strndup()". open-std.org. 2019-03-18. Archived from the original on December 24, 2022.
  9. "WG14-N2974 : Queryable pointer alignment" (PDF). open-std.org. 2022-04-15. Archived (PDF) from the original on October 13, 2022.
  10. 10.00 10.01 10.02 10.03 10.04 10.05 10.06 10.07 10.08 10.09 10.10 "WG14-N3022 : Modern Bit Utilities". open-std.org. 2022-07-06. Archived from the original on December 24, 2022.
  11. "WG14-N2833 : Add timegm() as non-optional part of time.h". open-std.org. 2021-10-07. Archived from the original on December 1, 2021.
  12. 12.0 12.1 12.2 "WG14-N2630 : formatted input/output of binary integer numbers" (PDF). open-std.org. 2021-01-01. Archived (PDF) from the original on December 14, 2022.
  13. "WG14-N3020 : Qualifier-preserving standard library functions" (PDF). open-std.org. 2022-06-13. Archived (PDF) from the original on October 13, 2022.
  14. 14.0 14.1 "WG14-N2645 : Add support for preprocessing directives #elifdef and #elifndef" (PDF). open-std.org. 2020-01-25. Archived (PDF) from the original on November 28, 2022.
  15. "GCC 12 Adds Support For New #elifdef #elifndef Directives". phoronix. May 12, 2021. Archived from the original on December 27, 2022.
  16. "WG14-N3017 : #embed - a scannable, tooling-friendly binary resource inclusion mechanism". open-std.org. 2022-06-27. Archived from the original on December 24, 2022.
  17. "WG14-N2686 : #warning" (PDF). open-std.org. 2022-07-22. Archived (PDF) from the original on November 28, 2022.
  18. "WG14-N2799 : __has_include for C" (PDF). open-std.org. 2021-08-30. Archived (PDF) from the original on December 24, 2022.
  19. "WG14-N2553 : Querying attribute support" (PDF). open-std.org. 2020-08-04. Archived (PDF) from the original on October 14, 2022.
  20. "WG14-N3033 : Comma omission and comma deletion". open-std.org. 2022-07-20. Archived from the original on December 27, 2022.
  21. 21.0 21.1 "WR14-N3042 : Introduce the nullptr constant". open-std.org. 2022-07-22. Archived from the original on December 24, 2022.
  22. "WG14-N2763 : Adding a Fundamental Type for N-bit integers" (PDF). open-std.org. 2021-06-21. Archived (PDF) from the original on December 27, 2022.
  23. "WG14-N3035 : _BitInt Fixes" (PDF). open-std.org. 2022-07-21. Archived (PDF) from the original on October 13, 2022.
  24. "WG14-N2867 : Checked N-Bit Integers" (PDF). open-std.org. 2021-11-28. Archived (PDF) from the original on December 14, 2022.
  25. "WG14-N2778 : Variably-Modified Types" (PDF). open-std.org. 2021-07-11. Archived (PDF) from the original on December 22, 2022.
  26. "WG14-N2607 : Compatibility of Pointers to Arrays with Qualifiers" (PDF). open-std.org. 2020-10-31. Archived (PDF) from the original on October 13, 2022.
  27. "WG14-N2899 : Not-so-magic - typeof for C". open-std.org. 2022-01-21. Archived from the original on December 24, 2022.
  28. "WG14-N3007 : Type inference for object definitions". open-std.org. 2022-06-10. Archived from the original on December 24, 2022.
  29. "WG14-N3037 : Improved Rules for Tag Compatibility (updates N3032)" (PDF).
  30. "WG14-N2775 : Literal suffixes for bit-precise integers" (PDF). open-std.org. 2021-07-13. Archived (PDF) from the original on December 27, 2022.
  31. "WG14-N2549 : Allow for binary integer constants" (PDF). open-std.org. 2020-07-30. Archived (PDF) from the original on December 22, 2022.
  32. "WG14-N2626 : Digit separators" (PDF). open-std.org. 2020-12-15. Archived (PDF) from the original on December 19, 2022.
  33. "WG14-N3030 : Enhancements to Enumerations". open-std.org. 2022-07-19. Archived from the original on November 26, 2022.
  34. "WG14-N3029 : Improved Normal Enumerations". open-std.org. 2022-07-19. Archived from the original on January 29, 2023.
  35. "WG14-N2935 : Make false and true first-class language features" (PDF). open-std.org. 2022-02-15. Archived (PDF) from the original on November 21, 2022.
  36. "WG14-N2934 : Revise spelling of keywords" (PDF). open-std.org. 2022-02-15. Archived (PDF) from the original on December 24, 2022.
  37. "WG14-N2508 : Free Positioning of Labels Inside Compound Statements" (PDF). open-std.org. 2020-03-28. Archived (PDF) from the original on December 27, 2022.
  38. "WG14-N2510 : Allowing unnamed parameters in a function definition" (PDF). open-std.org. 2020-04-09. Archived (PDF) from the original on December 24, 2022.
  39. "WG14-N2900 : Consistent, Warningless, and Intuitive Initialization with {}". open-std.org. 2022-01-01. Archived from the original on December 27, 2022.
  40. "WG14-N2975 : Relax requirements for variadic parameter lists" (PDF). open-std.org. 2022-04-15. Archived (PDF) from the original on November 28, 2022.
  41. "WG14-N2335 : Attributes in C" (PDF). open-std.org. 2019-03-09. Archived (PDF) from the original on October 26, 2022.
  42. "WG14-N2265 : Harmonizing static_assert with C++" (PDF). open-std.org. 2018-07-06. Archived (PDF) from the original on March 28, 2023.
  43. "मिश्रित कथनों के अंत में लेबल (सी संगतता)" (PDF). 2022-01-13.
  44. "WG14-N2554 : Minor attribute wording cleanups" (PDF). open-std.org. 2020-08-04. Archived (PDF) from the original on November 28, 2022.
  45. "WG14-N2334 : The deprecated attribute" (PDF). open-std.org. 2019-01-22. Archived (PDF) from the original on October 19, 2022.
  46. "WG14-N2408 : The fallthrough attribute" (PDF). open-std.org. 2019-08-11. Archived (PDF) from the original on December 25, 2022.
  47. "WG14-N2270 : The maybe_unused attribute" (PDF). open-std.org. 2018-07-06. Archived (PDF) from the original on December 25, 2022.
  48. "WG14-N2267 : The nodiscard attribute" (PDF). open-std.org. 2018-07-06. Archived (PDF) from the original on October 19, 2022.
  49. "WG14-N2764 : The noreturn attribute" (PDF). open-std.org. 2021-06-21. Archived (PDF) from the original on December 25, 2022.
  50. "WG14-N2557 : Allow Duplicate Attributes" (PDF). open-std.org. 2020-09-01. Archived (PDF) from the original on November 28, 2022.
  51. "WG14-N2418 : Adding the u8 character prefix" (PDF). open-std.org. 2019-09-02. Archived (PDF) from the original on January 13, 2023.
  52. What is the point of the UTF-8 character literals proposed for C++17?; Stack Overflow.
  53. "WG14-N2341 : ISO/IEC TS 18661-2 - Floating-point extensions for C - Part 2: Decimal floating-point arithmetic" (PDF). open-std.org. February 26, 2019. Archived (PDF) from the original on December 27, 2022. {{cite web}}: |archive-date= / |archive-url= timestamp mismatch (help)
  54. "WG14-N2601 : Annex X - IEC 60559 interchange and extended types" (PDF). open-std.org. October 15, 2020. Archived (PDF) from the original on December 27, 2022. {{cite web}}: |archive-date= / |archive-url= timestamp mismatch (help)
  55. "WG14-N3018 : The constexpr specifier for object definitions". open-std.org. 2022-07-06. Archived from the original on December 24, 2022.
  56. "WG14-N2653 : char8_t: A type for UTF-8 characters and strings (Revision 1)". open-std.org. 2021-06-04. Archived from the original on May 27, 2023.
  57. "WG14-N2728 : char16_t & char32_t string literals shall be UTF-16 & UTF-32". open-std.org. 2021-05-15. Archived from the original on May 27, 2023.
  58. "WG14-N3038 : Introduce storage-class specifiers for compound literals". open-std.org. 2022-07-21. Archived from the original on November 26, 2022.
  59. "WG14-N2940 : Removing trigraphs??!" (PDF). open-std.org. 2022-03-02. Archived (PDF) from the original on October 26, 2022.
  60. "WG14-N2432 : Remove support for function definitions with identifier lists proposal" (PDF). open-std.org. September 25, 2019. Archived (PDF) from the original on December 27, 2022.
  61. "WG14-N2841 : No function declarators without prototypes". open-std.org. 2021-10-10. Archived from the original on November 12, 2022.
  62. "WG14-N2412 : Two's complement sign representation" (PDF). open-std.org. August 11, 2019. Archived (PDF) from the original on December 27, 2022.
  63. "WG14-N2993 : Make *_HAS_SUBNORM be obsolescent". open-std.org. 2022-06-06. Archived from the original on December 5, 2022.
  64. "GCC 9 Release Notes". GNU Project. Archived from the original on December 27, 2022.
  65. "Clang 9.0 - add new language mode for C2x". LLVM Project Repository. May 14, 2019. Archived from the original on December 27, 2022.
  66. "पेल्स सी - 10.00 और 11.00 के बीच बड़े बदलाव". smorgasbordet.com. Archived from the original on December 27, 2022.


बाहरी संबंध

Preceded by C language standards Latest