सी ++ 20: Difference between revisions
No edit summary |
No edit summary |
||
(13 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{C++ language revisions}} | {{C++ language revisions}} | ||
'''[[C++]]20''' सी++ प्रोग्रामिंग भाषा के लिए मानकीकरण के लिए अंतर्राष्ट्रीय संगठन या अंतर्राष्ट्रीय [[इंटरनेशनल इलेक्ट्रोटेक्नीकल कमीशन]] मानक का एक संस्करण है। सी++20 ने सी++ मानक के पूर्व संस्करण को | '''[[C++|सी++]]20''' सी++ प्रोग्रामिंग भाषा के लिए मानकीकरण के लिए अंतर्राष्ट्रीय संगठन या अंतर्राष्ट्रीय [[इंटरनेशनल इलेक्ट्रोटेक्नीकल कमीशन]] मानक का एक संस्करण है। सी++20 ने सी++ मानक के पूर्व संस्करण को | ||
परिवर्तित दिया। जिसे [[C++17|सी++17]] कहा जाता है।<ref>{{cite web |title=The Standard |url=https://isocpp.org/std/the-standard |website=isocpp.org |accessdate=7 September 2020 |archive-date=19 September 2020 |archive-url=https://web.archive.org/web/20200919050617/https://isocpp.org/std/the-standard |url-status=live }}</ref> मानक को विधि रूप से अंतिम रूप दिया गया था।<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1000r3.pdf|title=P1000R3: C++ IS schedule|last=Sutter|first=Herb|date=2019-10-01|website=|access-date=2020-02-13|archive-date=2019-11-14|archive-url=https://web.archive.org/web/20191114141143/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1000r3.pdf|url-status=live}}</ref> फरवरी 2020 में [[प्राहा]] में बैठक में आईएसओ/आईईसी जेटीसी 1/एससी 22 द्वारा<ref>{{cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/n4817.pdf|title=N4817: 2020 Prague Meeting Invitation and Information|last=Dusíková|first=Hana|date=2019-11-06|website=|url-status=live|archive-url=https://web.archive.org/web/20191229102449/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/n4817.pdf |archive-date=2019-12-29 |access-date=2020-02-13}}</ref> 4 सितंबर 2020 को स्वीकृत किया गया<ref>{{cite web |title=Current Status |url=https://isocpp.org/std/status |website=isocpp.org |accessdate=7 September 2020 |archive-date=8 September 2020 |archive-url=https://web.archive.org/web/20200908083135/https://isocpp.org/std/status |url-status=live }}</ref><ref>{{cite web |title=C++20 Approved -- Herb Sutter |url=https://isocpp.org/blog/2020/09/cpp20-approved-herb-sutter |website=isocpp.org |accessdate=8 September 2020 |archive-date=11 September 2020 |archive-url=https://web.archive.org/web/20200911150359/https://isocpp.org/blog/2020/09/cpp20-approved-herb-sutter |url-status=live }}</ref> और दिसंबर 2020 में प्रकाशित हुआ।<ref>{{cite web|url=https://www.iso.org/standard/79358.html|title=ISO/IEC 14882:2020|access-date=2020-12-16|archive-date=2020-12-16|archive-url=https://web.archive.org/web/20201216154357/https://www.iso.org/standard/79358.html|url-status=live}}</ref> | |||
== सुविधाएँ == | == सुविधाएँ == | ||
सी++20 [[C++14|सी++14]] या सी++17 की तुलना में अधिक नई प्रमुख विशेषताएं जोड़ता है।<ref>{{cite web|url=https://herbsutter.com/2019/07/13/draft-faq-why-does-the-c-standard-ship-every-three-years/|title=Why does the C++ standard ship every three years?|date=13 July 2019|access-date=19 July 2019|archive-date=13 July 2019|archive-url=https://web.archive.org/web/20190713161618/https://herbsutter.com/2019/07/13/draft-faq-why-does-the-c-standard-ship-every-three-years/|url-status=live}}</ref> सी++20 में स्वीकार किए गए परिवर्तनों में भी सम्मिलित हैं।<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0592r0.html|title=P0592R0: To boldly suggest an overall plan for C++20|publisher=|access-date=2017-05-06|archive-date=2017-03-08|archive-url=https://web.archive.org/web/20170308143910/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0592r0.html|url-status=live}}</ref> | |||
=== भाषा === | === भाषा === | ||
* [[अवधारणाएं (सी ++)]] | * [[अवधारणाएं (सी ++)]]<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0606r0.pdf|title=P0606R0: Concepts Are Ready|publisher=|access-date=2017-05-06|archive-date=2017-03-28|archive-url=https://web.archive.org/web/20170328144243/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0606r0.pdf|url-status=live}}</ref> संक्षिप्त वाक्य रचना के साथ<ref>{{cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p1141r1.html|title=P1141R1 - Yet another approach for constrained declarations|access-date=2018-11-11|archive-date=2018-11-11|archive-url=https://web.archive.org/web/20181111133625/http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p1141r1.html|url-status=live}}</ref> | ||
* [[मॉड्यूलर प्रोग्रामिंग]]<ref>{{cite web|url=https://isocpp.org/files/papers/n4720.pdf|title=N4720: Working Draft, Extensions to C++ for Modules|publisher=|access-date=2019-04-30|archive-date=2019-04-30|archive-url=https://web.archive.org/web/20190430095053/https://isocpp.org/files/papers/n4720.pdf|url-status=live}}</ref> | * [[मॉड्यूलर प्रोग्रामिंग]]<ref>{{cite web|url=https://isocpp.org/files/papers/n4720.pdf|title=N4720: Working Draft, Extensions to C++ for Modules|publisher=|access-date=2019-04-30|archive-date=2019-04-30|archive-url=https://web.archive.org/web/20190430095053/https://isocpp.org/files/papers/n4720.pdf|url-status=live}}</ref> | ||
* | * नामक प्रारंभकर्ता<ref>{{cite web|url=https://wg21.link/p0329|title=Designated Initialization Wording|author1=Tim Shen|author2=Richard Smith|access-date=2017-07-16|archive-date=2017-10-15|archive-url=https://web.archive.org/web/20171015165744/https://wg21.link/p0329|url-status=live}}</ref> ([[C99|सी99]] फीचर और सामान्य [[जीएनयू संकलक संग्रह]] और जी++ एक्सटेंशन पर आधारित) | ||
* <code>[=, this]</code> लैम्ब्डा कैप्चर के रूप में<ref>{{cite web|url=https://wg21.link/p0409|title=Allow lambda capture [=, this]|author=Thomas Köppe|access-date=2017-07-16|archive-date=2019-02-09|archive-url=https://web.archive.org/web/20190209180040/https://wg21.link/p0409|url-status=live}}</ref> | * <code>[=, this]</code> लैम्ब्डा कैप्चर के रूप में<ref>{{cite web|url=https://wg21.link/p0409|title=Allow lambda capture [=, this]|author=Thomas Köppe|access-date=2017-07-16|archive-date=2019-02-09|archive-url=https://web.archive.org/web/20190209180040/https://wg21.link/p0409|url-status=live}}</ref> | ||
* लैम्ब्डा में टेम्पलेट पैरामीटर सूची<ref>{{cite web|url=https://wg21.link/p0428|title=Familiar template syntax for generic lambdas|access-date=2017-07-16|archive-date=2018-11-21|archive-url=https://web.archive.org/web/20181121022051/https://wg21.link/p0428|url-status=live}}</ref> | * लैम्ब्डा में टेम्पलेट पैरामीटर सूची<ref>{{cite web|url=https://wg21.link/p0428|title=Familiar template syntax for generic lambdas|access-date=2017-07-16|archive-date=2018-11-21|archive-url=https://web.archive.org/web/20181121022051/https://wg21.link/p0428|url-status=live}}</ref> | ||
* स्पेसशिप ऑपरेटर का उपयोग करके | * स्पेसशिप ऑपरेटर का उपयोग करके तीनों ओर की तुलना करना, <code>operator <=></code> | ||
* एक श्रेणी-आधारित के | * एक श्रेणी-आधारित के अन्दर एक अतिरिक्त चर का आरंभीकरण <code>for</code> कथन<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0614r0.html|title=Range-based for statements with initializer|access-date=2019-10-30|archive-date=2017-04-06|archive-url=https://web.archive.org/web/20170406231710/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0614r0.html|url-status=live}}</ref> | ||
* बिना मूल्यांकित संदर्भों में लैम्ब्डा<ref name=":0">{{cite news|url=https://botondballo.wordpress.com/2017/11/20/trip-report-c-standards-meeting-in-albuquerque-november-2017/|title=Trip Report: C++ Standards Meeting in Albuquerque, November 2017|date=2017-11-20|work=There's Waldo!|access-date=2017-12-11|language=en-US|archive-date=2017-12-11|archive-url=https://web.archive.org/web/20171211161242/https://botondballo.wordpress.com/2017/11/20/trip-report-c-standards-meeting-in-albuquerque-november-2017/|url-status=live}}</ref><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0315r4.pdf|title=Wording for lambdas in unevaluated contexts|access-date=2017-12-11|archive-date=2017-12-12|archive-url=https://web.archive.org/web/20171212031428/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0315r4.pdf|url-status=live}}</ref> | * बिना मूल्यांकित संदर्भों में लैम्ब्डा<ref name=":0">{{cite news|url=https://botondballo.wordpress.com/2017/11/20/trip-report-c-standards-meeting-in-albuquerque-november-2017/|title=Trip Report: C++ Standards Meeting in Albuquerque, November 2017|date=2017-11-20|work=There's Waldo!|access-date=2017-12-11|language=en-US|archive-date=2017-12-11|archive-url=https://web.archive.org/web/20171211161242/https://botondballo.wordpress.com/2017/11/20/trip-report-c-standards-meeting-in-albuquerque-november-2017/|url-status=live}}</ref><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0315r4.pdf|title=Wording for lambdas in unevaluated contexts|access-date=2017-12-11|archive-date=2017-12-12|archive-url=https://web.archive.org/web/20171212031428/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0315r4.pdf|url-status=live}}</ref> | ||
* डिफ़ॉल्ट रचनात्मक और असाइन करने योग्य स्टेटलेस लैम्ब्डा<ref name=":0" /><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0624r2.pdf|title=Default constructible and assignable stateless lambdas|access-date=2017-12-11|archive-date=2017-12-12|archive-url=https://web.archive.org/web/20171212031425/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0624r2.pdf|url-status=live}}</ref> | * डिफ़ॉल्ट रचनात्मक और असाइन करने योग्य स्टेटलेस लैम्ब्डा<ref name=":0" /><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0624r2.pdf|title=Default constructible and assignable stateless lambdas|access-date=2017-12-11|archive-date=2017-12-12|archive-url=https://web.archive.org/web/20171212031425/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0624r2.pdf|url-status=live}}</ref> | ||
* लैम्ब्डा इनिट-कैप्चर में पैक विस्तार की अनुमति दें<ref name=":0" /><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0780r0.html|title=Pack expansion in lambda init-capture|website=www.open-std.org|access-date=2017-12-11|archive-date=2020-02-14|archive-url=https://web.archive.org/web/20200214081039/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0780r0.html|url-status=live}}</ref> | * लैम्ब्डा इनिट-कैप्चर में पैक विस्तार की अनुमति दें<ref name=":0" /><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0780r0.html|title=Pack expansion in lambda init-capture|website=www.open-std.org|access-date=2017-12-11|archive-date=2020-02-14|archive-url=https://web.archive.org/web/20200214081039/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0780r0.html|url-status=live}}</ref> | ||
* गैर-प्रकार के टेम्पलेट पैरामीटर में वर्ग प्रकार | * गैर-प्रकार के टेम्पलेट पैरामीटर में वर्ग प्रकार स्ट्रिंग अक्षर को टेम्पलेट पैरामीटर के रूप में भी अनुमति देता है।<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0732r2.pdf|title=Class Types in Non-Type Template Parameters|date=2018-06-06|website=www.open-std.org|access-date=2022-02-18|archive-date=2022-02-05|archive-url=https://web.archive.org/web/20220205083651/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0732r2.pdf|url-status=live}}</ref> | ||
* | * कुछ निश्चित परिस्थितियों में <code>typename</code> की आवश्यकता को दूर करना <ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0634r3.html|title=Down with typename!|author1=Nina Ranns|author2=Daveed Vandevoorde|access-date=2019-05-18|archive-date=2018-04-22|archive-url=https://web.archive.org/web/20180422180216/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0634r3.html|url-status=live}}</ref> | ||
* नए मानक गुण <code><nowiki>[[no_unique_address]]</nowiki></code>,<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0840r2.html|title=Language support for empty objects|access-date=2019-08-04|archive-date=2018-04-17|archive-url=https://web.archive.org/web/20180417180340/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0840r2.html|url-status=live}}</ref> <code><nowiki>[[likely]]</nowiki></code> और <code><nowiki>[[unlikely]]</nowiki></code><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0479r5.html|title=Proposed wording for likely and unlikely attributes (Revision 5)|access-date=2019-05-18|archive-date=2018-05-13|archive-url=https://web.archive.org/web/20180513080343/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0479r5.html|url-status=live}}</ref> | * नए मानक गुण <code><nowiki>[[no_unique_address]]</nowiki></code>,<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0840r2.html|title=Language support for empty objects|access-date=2019-08-04|archive-date=2018-04-17|archive-url=https://web.archive.org/web/20180417180340/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0840r2.html|url-status=live}}</ref> <code><nowiki>[[likely]]</nowiki></code> और <code><nowiki>[[unlikely]]</nowiki></code><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0479r5.html|title=Proposed wording for likely and unlikely attributes (Revision 5)|access-date=2019-05-18|archive-date=2018-05-13|archive-url=https://web.archive.org/web/20180513080343/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0479r5.html|url-status=live}}</ref> | ||
* | * नियमानुसार <code>explicit</code> अनुमति देता है। <code>explicit</code> एक बूलियन अभिव्यक्ति पर आकस्मिक होने के लिए संशोधक है।<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0892r2.html|title=explicit(bool)|website=www.open-std.org|access-date=2018-11-13|archive-date=2018-07-20|archive-url=https://web.archive.org/web/20180720061629/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0892r2.html|url-status=live}}</ref> | ||
*विस्तारित <code>constexpr</code>: आभासी कार्य,<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1064r0.html|title=Allowing Virtual Function Calls in Constant Expressions|website=www.open-std.org|access-date=2019-03-11|archive-date=2018-06-11|archive-url=https://web.archive.org/web/20180611142757/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1064r0.html|url-status=live}}</ref> <code>union</code>,<ref>{{cite web|url=https://wg21.link/p1330|title=P1330R0 - Changing the active member of a union inside constexpr|access-date=2019-07-26|archive-date=2019-07-26|archive-url=https://web.archive.org/web/20190726101620/https://wg21.link/p1330|url-status=live}}</ref> <code>try</code> और <code>catch</code>,<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1002r0.pdf|title=P1002R0 - Try-catch blocks in constexpr functions|access-date=2018-11-11|archive-date=2018-11-11|archive-url=https://web.archive.org/web/20181111133628/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1002r0.pdf|url-status=live}}</ref> <code>dynamic_cast</code> और <code>typeid</code>,<ref>{{cite web|url=https://wg21.link/p1327|title=P1327R0 - Allowing dynamic_cast, polymorphic typeid in Constant Expressions|access-date=2019-07-26|archive-date=2019-07-26|archive-url=https://web.archive.org/web/20190726101620/https://wg21.link/p1327|url-status=live}}</ref> <code>std::pointer_traits</code><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1006r1.pdf|title=P1006R1 - Constexpr in std::pointer_traits|access-date=2018-11-11|archive-date=2018-11-11|archive-url=https://web.archive.org/web/20181111133625/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1006r1.pdf|url-status=live}}</ref> | *विस्तारित <code>constexpr</code>: आभासी कार्य,<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1064r0.html|title=Allowing Virtual Function Calls in Constant Expressions|website=www.open-std.org|access-date=2019-03-11|archive-date=2018-06-11|archive-url=https://web.archive.org/web/20180611142757/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1064r0.html|url-status=live}}</ref> <code>union</code>,<ref>{{cite web|url=https://wg21.link/p1330|title=P1330R0 - Changing the active member of a union inside constexpr|access-date=2019-07-26|archive-date=2019-07-26|archive-url=https://web.archive.org/web/20190726101620/https://wg21.link/p1330|url-status=live}}</ref> <code>try</code> और <code>catch</code>,<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1002r0.pdf|title=P1002R0 - Try-catch blocks in constexpr functions|access-date=2018-11-11|archive-date=2018-11-11|archive-url=https://web.archive.org/web/20181111133628/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1002r0.pdf|url-status=live}}</ref> <code>dynamic_cast</code> और <code>typeid</code>,<ref>{{cite web|url=https://wg21.link/p1327|title=P1327R0 - Allowing dynamic_cast, polymorphic typeid in Constant Expressions|access-date=2019-07-26|archive-date=2019-07-26|archive-url=https://web.archive.org/web/20190726101620/https://wg21.link/p1327|url-status=live}}</ref> <code>std::pointer_traits</code><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1006r1.pdf|title=P1006R1 - Constexpr in std::pointer_traits|access-date=2018-11-11|archive-date=2018-11-11|archive-url=https://web.archive.org/web/20181111133625/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1006r1.pdf|url-status=live}}</ref> | ||
* नए | * नए <code>consteval</code> कीवर्ड का उपयोग कर तत्काल कार्य करता है।<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1073r2.html|title=P1073R2 - Immediate functions|access-date=2018-11-11|archive-date=2018-10-26|archive-url=https://web.archive.org/web/20181026124307/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1073r2.html|url-status=live}}</ref> | ||
* [[हस्ताक्षरित पूर्णांक]] अब दो के पूरक का उपयोग करके दर्शाए जाने के लिए परिभाषित किए गए हैं (हस्ताक्षरित पूर्णांक अतिप्रवाह [[अपरिभाषित व्यवहार]] रहता है)<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1236r0.html|title=P1236R0: Alternative Wording for P0907R4 Signed Integers are Two's Complement|access-date=2018-11-11|archive-date=2018-11-11|archive-url=https://web.archive.org/web/20181111133642/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1236r0.html|url-status=live}}</ref> | * [[हस्ताक्षरित पूर्णांक]] अब दो के पूरक का उपयोग करके दर्शाए जाने के लिए परिभाषित किए गए हैं (हस्ताक्षरित पूर्णांक अतिप्रवाह [[अपरिभाषित व्यवहार]] रहता है)।<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1236r0.html|title=P1236R0: Alternative Wording for P0907R4 Signed Integers are Two's Complement|access-date=2018-11-11|archive-date=2018-11-11|archive-url=https://web.archive.org/web/20181111133642/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1236r0.html|url-status=live}}</ref> | ||
* एक संशोधित स्मृति मॉडल<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0668r4.html|title=P0668R4: Revising the C++ memory model|access-date=2018-11-11|archive-date=2018-11-11|archive-url=https://web.archive.org/web/20181111133634/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0668r4.html|url-status=live}}</ref> | * एक संशोधित स्मृति मॉडल<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0668r4.html|title=P0668R4: Revising the C++ memory model|access-date=2018-11-11|archive-date=2018-11-11|archive-url=https://web.archive.org/web/20181111133634/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0668r4.html|url-status=live}}</ref> | ||
* संरचित बाइंडिंग में विभिन्न सुधार (लैम्ब्डा कैप्चर के साथ सहभागिता, <code>static</code> और <code>thread_local</code> भंडारण अवधि)<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1091r1.html|title=P1091R1: Extending structured bindings to be more like variable declarations|website=www.open-std.org|access-date=2019-02-24|archive-date=2019-01-26|archive-url=https://web.archive.org/web/20190126105655/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1091r1.html|url-status=live}}</ref><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1091r2.html|title=P1091R2: Extending structured bindings to be more like variable declarations|website=www.open-std.org|access-date=2019-02-24|archive-date=2019-01-26|archive-url=https://web.archive.org/web/20190126112016/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1091r2.html|url-status=live}}</ref> | * संरचित बाइंडिंग में विभिन्न सुधार (लैम्ब्डा कैप्चर के साथ सहभागिता, <code>static</code> और <code>thread_local</code> भंडारण अवधि)<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1091r1.html|title=P1091R1: Extending structured bindings to be more like variable declarations|website=www.open-std.org|access-date=2019-02-24|archive-date=2019-01-26|archive-url=https://web.archive.org/web/20190126105655/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1091r1.html|url-status=live}}</ref><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1091r2.html|title=P1091R2: Extending structured bindings to be more like variable declarations|website=www.open-std.org|access-date=2019-02-24|archive-date=2019-01-26|archive-url=https://web.archive.org/web/20190126112016/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1091r2.html|url-status=live}}</ref> | ||
* [[coroutine]]<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4649.pdf|title=N4649: Working Draft, Technical Specification on C++ Extensions for Coroutines|publisher=|access-date=2017-05-06|archive-date=2017-05-16|archive-url=https://web.archive.org/web/20170516185504/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4649.pdf|url-status=live}}</ref> | * [[coroutine|कोरूटीन]]<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4649.pdf|title=N4649: Working Draft, Technical Specification on C++ Extensions for Coroutines|publisher=|access-date=2017-05-06|archive-date=2017-05-16|archive-url=https://web.archive.org/web/20170516185504/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4649.pdf|url-status=live}}</ref> | ||
* <code>using</code> | * <code>using</code> के अन्तर्गत <code>enum</code>s<ref name="P1099R5: Using Enum"/> | ||
*<code>constinit</code> कीवर्ड<ref name="constinit">{{cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1143r2.html|title=P1143R2: Adding the constinit keyword|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820001957/http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1143r2.html|url-status=live}}</ref> | |||
Line 38: | Line 42: | ||
* <code>std::make_shared</code> और <code>std::allocate_shared</code> सरणियों के लिए<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0674r1.html|title=Extending make_shared to Support Arrays|access-date=2020-02-12|archive-date=2017-09-06|archive-url=https://web.archive.org/web/20170906070027/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0674r1.html|url-status=live}}</ref> | * <code>std::make_shared</code> और <code>std::allocate_shared</code> सरणियों के लिए<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0674r1.html|title=Extending make_shared to Support Arrays|access-date=2020-02-12|archive-date=2017-09-06|archive-url=https://web.archive.org/web/20170906070027/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0674r1.html|url-status=live}}</ref> | ||
* एटॉमिक स्मार्ट पॉइंटर्स (जैसे <code>std::atomic<shared_ptr<T>></code> और <code>std::atomic<weak_ptr<T>></code>)<ref>{{cite web |last1=Meredith |first1=Alisdair |last2=Sutter |first2=Herb |title=Revising atomic_shared_ptr for C++20 |url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0718r2.html |website=JTC1/SC22/WG21 - The C++ Standards Committee - ISOCPP |publisher=[[International Organization for Standardization|ISO]] |accessdate=27 December 2018 |archive-date=4 January 2018 |archive-url=https://web.archive.org/web/20180104184159/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0718r2.html |url-status=live }}</ref> | * एटॉमिक स्मार्ट पॉइंटर्स (जैसे <code>std::atomic<shared_ptr<T>></code> और <code>std::atomic<weak_ptr<T>></code>)<ref>{{cite web |last1=Meredith |first1=Alisdair |last2=Sutter |first2=Herb |title=Revising atomic_shared_ptr for C++20 |url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0718r2.html |website=JTC1/SC22/WG21 - The C++ Standards Committee - ISOCPP |publisher=[[International Organization for Standardization|ISO]] |accessdate=27 December 2018 |archive-date=4 January 2018 |archive-url=https://web.archive.org/web/20180104184159/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0718r2.html |url-status=live }}</ref> | ||
* <code>std::to_address</code> एक सूचक को कच्चे सूचक में | * <code>std::to_address</code> एक सूचक को कच्चे सूचक में परिवर्तितने के लिए<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0653r2.html|title=Utility to convert a pointer to a raw pointer|access-date=2020-02-12|archive-date=2018-02-20|archive-url=https://web.archive.org/web/20180220012525/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0653r2.html|url-status=live}}</ref> | ||
* कैलेंडर और समय-क्षेत्र के अतिरिक्त <code><chrono></code><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html|title=Extending <chrono> to Calendars and Time Zones|author1=Howard E. Hinnant|author2=Tomasz Kamiński|access-date=2019-05-18|archive-date=2018-05-13|archive-url=https://web.archive.org/web/20180513074927/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html|url-status=live}}</ref> | * कैलेंडर और समय-क्षेत्र के अतिरिक्त <code><chrono></code><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html|title=Extending <chrono> to Calendars and Time Zones|author1=Howard E. Hinnant|author2=Tomasz Kamiński|access-date=2019-05-18|archive-date=2018-05-13|archive-url=https://web.archive.org/web/20180513074927/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html|url-status=live}}</ref> | ||
* <code>std::span</code> | * <code>std::span</code> एक सन्निहित सारणी के लिए एक दृश्य प्रदान करता है। (संदर्भित अनुक्रम को <code>std::string_view,</code> <code>span</code> के अनुरूप परिवर्तित सकते हैं।)<ref>{{cite web|url=http://wg21.link/p0122|title=span: bounds-safe views for sequences of objects|author1=Neil MacIntosh|author2=Stephan T. Lavavej|access-date=2019-05-18|archive-date=2019-05-18|archive-url=https://web.archive.org/web/20190518102826/http://wg21.link/p0122|url-status=live}}</ref> | ||
* <code>std::erase</code> और <code>std::erase_if</code> | * <code>std::erase</code> और <code>std::erase_if</code> अधिकांश मानक कंटेनरों के लिए तत्व विलोपन को सरल बनाना<ref>{{Cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1209r0.html|title=Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20|date=2018-10-04|author1=Alisdair Meredith|author2=Stephan T. Lavavej|access-date=2020-12-14|archive-date=2021-03-08|archive-url=https://web.archive.org/web/20210308123055/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1209r0.html|url-status=live}}</ref> | ||
* <code><version></code> हैडर<ref>{{cite web|url=http://wg21.link/p0754|title=<version>|author=Alan Talbot|access-date=2019-05-18|archive-date=2019-05-18|archive-url=https://web.archive.org/web/20190518102900/http://wg21.link/p0754|url-status=live}}</ref> | * <code><version></code> हैडर<ref>{{cite web|url=http://wg21.link/p0754|title=<version>|author=Alan Talbot|access-date=2019-05-18|archive-date=2019-05-18|archive-url=https://web.archive.org/web/20190518102900/http://wg21.link/p0754|url-status=live}}</ref> | ||
* <code>std::bit_cast<></code> से कम | * <code>std::bit_cast<></code> से कम शब्द भंडार के साथ वस्तु निरूपण के प्रकार, कास्टिंग के लिए <code>memcpy()</code> और कंपाइलर इंटर्नल्स का लाभ लेने की अधिक क्षमता<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0476r2.html|title=Bit-casting object representations|website=www.open-std.org|access-date=2018-11-10|archive-date=2018-08-18|archive-url=https://web.archive.org/web/20180818190426/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0476r2.html|url-status=live}}</ref> | ||
* फीचर टेस्ट मैक्रोज़<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0941r2.html|title=Integrating feature-test macros into the C++ WD|website=www.open-std.org|access-date=2018-11-10|archive-date=2018-07-20|archive-url=https://web.archive.org/web/20180720144603/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0941r2.html|url-status=live}}</ref> | * फीचर टेस्ट मैक्रोज़<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0941r2.html|title=Integrating feature-test macros into the C++ WD|website=www.open-std.org|access-date=2018-11-10|archive-date=2018-07-20|archive-url=https://web.archive.org/web/20180720144603/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0941r2.html|url-status=live}}</ref> | ||
* विभिन्न कॉन्स्टेक्स लाइब्रेरी बिट्स<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1032r1.html|title=P1032R1 - Misc constexpr bits|access-date=2018-11-11|archive-date=2018-10-26|archive-url=https://web.archive.org/web/20181026124238/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1032r1.html|url-status=live}}</ref> | * विभिन्न कॉन्स्टेक्स लाइब्रेरी बिट्स<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1032r1.html|title=P1032R1 - Misc constexpr bits|access-date=2018-11-11|archive-date=2018-10-26|archive-url=https://web.archive.org/web/20181026124238/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1032r1.html|url-status=live}}</ref> | ||
* डिफॉल्ट इनिशियलाइज़ेशन के साथ स्मार्ट पॉइंटर क्रिएशन<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1020r1.html|title=Smart pointer creation with default initialization|access-date=2020-02-12|archive-date=2019-01-26|archive-url=https://web.archive.org/web/20190126111714/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1020r1.html|url-status=live}}</ref> | * डिफॉल्ट इनिशियलाइज़ेशन के साथ स्मार्ट पॉइंटर क्रिएशन<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1020r1.html|title=Smart pointer creation with default initialization|access-date=2020-02-12|archive-date=2019-01-26|archive-url=https://web.archive.org/web/20190126111714/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1020r1.html|url-status=live}}</ref> | ||
* <code>contains</code>सहयोगी कंटेनरों के लिए | * <code>contains</code>सहयोगी कंटेनरों के लिए विधि<ref>{{Cite web|title=P0458R2: Checking for Existence of an Element in Associative Containers|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0458r2.html|author1=Mikhail Maltsev|access-date=2022-01-02|archive-date=2022-01-16|archive-url=https://web.archive.org/web/20220116211430/https://www9.open-std.org/JTC1/SC22/WG21/docs/papers/2018/p0458r2.html|url-status=live}}</ref> | ||
* बिट ऑपरेशंस | * बिट ऑपरेशंस जैसे लीडिंग/ट्रेलिंग ज़ीरो/वन काउंट<ref name="P0553R4: Bit operations"/>और लॉग 2 ऑपरेशंस<ref>{{cite web|url=https://wg21.link/p0556r3|title=P0556R3: Integral power-of-2 operations|date=2018-06-06|website=www.open-std.org|access-date=2020-08-08|archive-date=2019-06-26|archive-url=https://web.archive.org/web/20190626184254/https://wg21.link/p0556r3|url-status=live}}</ref><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1355r2.html|title=P1355R2 Exposing a narrow contract for ceil2|date=2019-06-11|website=www.open-std.org|access-date=2020-08-08|archive-date=2019-08-05|archive-url=https://web.archive.org/web/20190805104347/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1355r2.html|url-status=live}}</ref><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1956r1.pdf|title=On the names of low-level bit manipulation functions|date=2020-02-11|website=www.open-std.org|access-date=2020-08-08|archive-date=2020-03-24|archive-url=https://web.archive.org/web/20200324173059/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1956r1.pdf|url-status=live}}</ref> | ||
* <code>std::bind_front</code><ref>{{Cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0356r3.html|title=Simplified partial function application|author=Tomasz Kamiński|date=2017-11-09|access-date=2020-11-08|archive-date=2020-09-28|archive-url=https://web.archive.org/web/20200928182706/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0356r3.html|url-status=live}}</ref> | * <code>std::bind_front</code><ref>{{Cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0356r3.html|title=Simplified partial function application|author=Tomasz Kamiński|date=2017-11-09|access-date=2020-11-08|archive-date=2020-09-28|archive-url=https://web.archive.org/web/20200928182706/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0356r3.html|url-status=live}}</ref> | ||
Line 54: | Line 58: | ||
=== नए और परिवर्तित कीवर्ड्स === | === नए और परिवर्तित कीवर्ड्स === | ||
कई नए कीवर्ड जोड़े गए | कई नए कीवर्ड जोड़े गए और नया स्पेसशिप ऑपरेटर <code>operator <=></code>) जैसे कि <code>concept</code>, <code>constinit</code>,<ref name="constinit"/> <code>consteval</code>, <code>co_await</code>, <code>co_return</code>, <code>co_yield</code>, <code>requires</code> (प्लस के लिए परिवर्तित अर्थ <code>export</code>) और <code>char8_t</code> ([[UTF-8|यूटीएफ-8]] समर्थन के लिए)<ref>{{cite web|url=https://en.cppreference.com/w/cpp/keyword|title=C++ keywords - cppreference.com|website=en.cppreference.com|access-date=2019-08-04|archive-date=2012-03-19|archive-url=https://web.archive.org/web/20120319210634/https://en.cppreference.com/w/cpp/keyword|url-status=live}}</ref> और <code>explicit</code> सी ++ 20 के बाद से अभिव्यक्ति को ग्रहण कर सकता है।<ref>{{cite web|url=https://en.cppreference.com/w/cpp/language/explicit|title=explicit specifier - cppreference.com|website=en.cppreference.com|access-date=2019-08-04|archive-date=2012-02-21|archive-url=https://web.archive.org/web/20120221163715/https://en.cppreference.com/w/cpp/language/explicit|url-status=live}}</ref> इसके अधिकांश उपयोग <code>[[Volatile (computer programming)|volatile]]</code> कीवर्ड को बहिष्कृत कर दिया गया है।<ref name="volatile"/> | ||
खोजशब्दों के अतिरिक्त नए विशेष अर्थ वाले पहचानकर्ता भी हैं। <code>import</code> और <code>module</code>. सी ++ 20 में नई विशेषताएँ:<code><nowiki>[[likely]]</nowiki></code>, <code><nowiki>[[unlikely]]</nowiki></code>, और <code><nowiki>[[no_unique_address]]</nowiki></code><ref>{{cite web|url=https://en.cppreference.com/w/cpp/language/attributes|title=attribute specifier sequence(since C++11) - cppreference.com|website=en.cppreference.com|access-date=2019-08-04|archive-date=2012-07-05|archive-url=https://web.archive.org/web/20120705235229/https://en.cppreference.com/w/cpp/language/attributes|url-status=live}}</ref> हैं। | |||
=== | === हटाया और पदावनत किया === | ||
हटाई गई विशेषताएं:<ref>{{Cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2020/n4861.pdf|title=Working Draft, Standard for Programming Language C++ (Annex C, §C.1)|access-date=2020-11-18|archive-date=2020-04-27|archive-url=https://web.archive.org/web/20200427145844/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/n4861.pdf|url-status=live}}</ref> | हटाई गई विशेषताएं:<ref>{{Cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2020/n4861.pdf|title=Working Draft, Standard for Programming Language C++ (Annex C, §C.1)|access-date=2020-11-18|archive-date=2020-04-27|archive-url=https://web.archive.org/web/20200427145844/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/n4861.pdf|url-status=live}}</ref> | ||
* [[सी (प्रोग्रामिंग भाषा)]]-व्युत्पन्न हेडर <code><ccomplex></code>, <code><ciso646></code>, <code><cstdalign></code>, <code><cstdbool></code> और <code><ctgmath></code> हटा दिए गए | * [[सी (प्रोग्रामिंग भाषा)]]-व्युत्पन्न हेडर <code><ccomplex></code>, <code><ciso646></code>, <code><cstdalign></code>, <code><cstdbool></code> और <code><ctgmath></code> हटा दिए गए क्योंकि वे सी++ में कोई उद्देश्य पूरा नहीं करते। इसी <code><*.h></code> सी के साथ अनुकूलता के लिए हेडर बने रहते हैं। | ||
* | * <code>throw()</code> का उपयोग एक अपवाद विनिर्देश के रूप में हटा दिया गया था। | ||
* कुछ पूर्व में पदावनत पुस्तकालय सुविधाओं को हटा दिया गया था | * कुछ पूर्व में पदावनत पुस्तकालय सुविधाओं को हटा दिया गया था> जिनमें सम्मिलित हैं <code>std::uncaught_exception</code>, <code>std::raw_storage_iterator</code>, <code>std::is_literal_type</code>, <code>std::is_literal_type_v</code>, <code>std::result_of</code> और <code>std::result_of_t</code>. | ||
बहिष्कृत विशेषताएं: | बहिष्कृत विशेषताएं: | ||
* सबस्क्रिप्ट एक्सप्रेशन में कॉमा ऑपरेटर का उपयोग बहिष्कृत कर दिया गया है<ref name="open-std.org"/>* | * सबस्क्रिप्ट एक्सप्रेशन में कॉमा ऑपरेटर का उपयोग बहिष्कृत कर दिया गया है<ref name="open-std.org"/> | ||
*<code>[[Volatile (computer programming)|volatile]]</code> को बहिष्कृत किया गया है।<ref name="volatile" /> | |||
== विधि | == विधि विशिष्टताओं के रूप में प्रकाशित == | ||
* समानता टीएस | * समानता टीएस वी2<ref>{{cite web|url=https://wg21.link/N4793|title=C++ Extensions for Parallelism Version 2|access-date=2019-07-09|archive-date=2022-09-21|archive-url=https://web.archive.org/web/20220921201417/https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/n4793.pdf|url-status=live}}</ref> (टास्क ब्लॉक सहित<ref>{{cite web|url=http://www.modernescpp.com/index.php/task-blocks|title=Task Blocks|publisher=|access-date=2017-07-23|archive-date=2017-09-19|archive-url=https://web.archive.org/web/20170919141316/http://www.modernescpp.com/index.php/task-blocks|url-status=live}}</ref>) | ||
* प्रतिबिंब टीएस | * प्रतिबिंब टीएस वी1<ref>{{cite web|url=https://wg21.link/N4818|title=C++ Extensions for Reflection|access-date=2019-07-09|archive-date=2022-09-21|archive-url=https://web.archive.org/web/20220921201417/https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/n4818.pdf|url-status=live}}</ref> | ||
* नेटवर्किंग टीएस | * नेटवर्किंग टीएस वी1<ref>{{cite web|url=https://wg21.link/N4711|title=C++ Extensions for Networking|access-date=2019-07-09|archive-date=2022-09-21|archive-url=https://web.archive.org/web/20220921201418/https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4711.pdf|url-status=live}}</ref> | ||
बाद के मानक के लिए स्थगित | |||
* '''अनुबंध''' एक नए प्रस्ताव पर काम करने के लिए एक नया अध्ययन समूह (एसजी21) बनाया गया है।<ref>{{cite web|url=https://herbsutter.com/2019/07/20/trip-report-summer-iso-c-standards-meeting-cologne/|title=Trip report: Summer ISO C++ standards meeting (Cologne)|last=Sutter|first=Herb|date=2019-07-20|website=Sutter's Mill|language=en|access-date=2019-07-21|archive-date=2020-04-17|archive-url=https://web.archive.org/web/20200417181512/https://herbsutter.com/2019/07/20/trip-report-summer-iso-c-standards-meeting-cologne/|url-status=live}}</ref> | |||
* | |||
* प्रतिबिंब<ref>{{cite web|url=https://meetingcpp.com/index.php/br/items/reflections-on-the-reflection-proposals.html|title=Reflections on the reflection proposals - Meeting C++|website=meetingcpp.com|language=en|access-date=2017-06-30|archive-date=2017-06-23|archive-url=https://web.archive.org/web/20170623034739/http://meetingcpp.com/index.php/br/items/reflections-on-the-reflection-proposals.html|url-status=live}}</ref><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0194r6.html|title=Static reflection|website=www.open-std.org|access-date=2018-11-10|archive-date=2020-02-22|archive-url=https://web.archive.org/web/20200222002039/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0194r6.html|url-status=live}}</ref> | * प्रतिबिंब<ref>{{cite web|url=https://meetingcpp.com/index.php/br/items/reflections-on-the-reflection-proposals.html|title=Reflections on the reflection proposals - Meeting C++|website=meetingcpp.com|language=en|access-date=2017-06-30|archive-date=2017-06-23|archive-url=https://web.archive.org/web/20170623034739/http://meetingcpp.com/index.php/br/items/reflections-on-the-reflection-proposals.html|url-status=live}}</ref><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0194r6.html|title=Static reflection|website=www.open-std.org|access-date=2018-11-10|archive-date=2020-02-22|archive-url=https://web.archive.org/web/20200222002039/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0194r6.html|url-status=live}}</ref> | ||
* [[मेटाक्लास]]<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0707r0.pdf|title=मेटाक्लासेस|author=[[Herb Sutter]]|access-date=2017-07-23|archive-date=2020-11-11|archive-url=https://web.archive.org/web/20201111204111/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0707r0.pdf|url-status=live}}</ref> | * [[मेटाक्लास]]<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0707r0.pdf|title=मेटाक्लासेस|author=[[Herb Sutter]]|access-date=2017-07-23|archive-date=2020-11-11|archive-url=https://web.archive.org/web/20201111204111/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0707r0.pdf|url-status=live}}</ref> | ||
* निष्पादक<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0443r10.html|title=A Unified Executors Proposal for C++|website=www.open-std.org|access-date=2019-02-24|archive-date=2020-02-20|archive-url=https://web.archive.org/web/20200220055757/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0443r10.html|url-status=live}}</ref> | * निष्पादक<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0443r10.html|title=A Unified Executors Proposal for C++|website=www.open-std.org|access-date=2019-02-24|archive-date=2020-02-20|archive-url=https://web.archive.org/web/20200220055757/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0443r10.html|url-status=live}}</ref> | ||
* नेटवर्किंग एक्सटेंशन,<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/n4771.pdf|title=N4771: Working Draft, C++ Extensions for Networking|publisher=|access-date=2019-03-23|archive-date=2020-04-19|archive-url=https://web.archive.org/web/20200419011113/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/n4771.pdf|url-status=live}}</ref><ref>{{cite web|url=https://www.iso.org/standard/64030.html|title=ISO/IEC TS 19216:2018 Programming Languages -- C++ Extensions for Networking|publisher=|access-date=2018-12-17|archive-date=2019-01-15|archive-url=https://web.archive.org/web/20190115201923/https://www.iso.org/standard/64030.html|url-status=live}}</ref> | * नेटवर्किंग एक्सटेंशन,<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/n4771.pdf|title=N4771: Working Draft, C++ Extensions for Networking|publisher=|access-date=2019-03-23|archive-date=2020-04-19|archive-url=https://web.archive.org/web/20200419011113/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/n4771.pdf|url-status=live}}</ref><ref>{{cite web|url=https://www.iso.org/standard/64030.html|title=ISO/IEC TS 19216:2018 Programming Languages -- C++ Extensions for Networking|publisher=|access-date=2018-12-17|archive-date=2019-01-15|archive-url=https://web.archive.org/web/20190115201923/https://www.iso.org/standard/64030.html|url-status=live}}</ref> एसिन, मूलभूत आई/ओ सेवाओं, टाइमर, बफ़र्स और बफर-ओरिएंटेड स्ट्रीम, सॉकेट्स और इंटरनेट प्रोटोकॉल (निष्पादकों द्वारा अवरुद्ध) सहित। | ||
* गुण<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1393r0.html|title=A General Property Customization Mechanism|website=www.open-std.org|access-date=2019-02-24|archive-date=2020-01-19|archive-url=https://web.archive.org/web/20200119114436/http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1393r0.html|url-status=live}}</ref> | * गुण<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1393r0.html|title=A General Property Customization Mechanism|website=www.open-std.org|access-date=2019-02-24|archive-date=2020-01-19|archive-url=https://web.archive.org/web/20200119114436/http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1393r0.html|url-status=live}}</ref> | ||
* विस्तारित | * विस्तारित प्रतिज्ञा<ref>{{cite web|url=https://wg21.link/P1054|title=A Unified Futures Proposal for C++|access-date=2019-07-08|archive-date=2022-09-21|archive-url=https://web.archive.org/web/20220921201420/https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1054r0.html|url-status=live}}</ref> | ||
Line 96: | Line 97: | ||
पूर्ण समर्थन<ref>{{Cite web |title=C++ compiler support - cppreference.com |url=https://en.cppreference.com/w/cpp/compiler_support |access-date=2022-08-12 |website=en.cppreference.com |archive-date=2022-08-08 |archive-url=https://web.archive.org/web/20220808151657/https://en.cppreference.com/w/cpp/compiler_support |url-status=live }}</ref> | पूर्ण समर्थन<ref>{{Cite web |title=C++ compiler support - cppreference.com |url=https://en.cppreference.com/w/cpp/compiler_support |access-date=2022-08-12 |website=en.cppreference.com |archive-date=2022-08-08 |archive-url=https://web.archive.org/web/20220808151657/https://en.cppreference.com/w/cpp/compiler_support |url-status=live }}</ref> | ||
* | * माइक्रोसॉफ्ट विजुअल स्टूडियो 2019 इसके माध्यम से सभी सी++20 सुविधाओं का समर्थन करता है। <code>/std:सी++latest</code> विकल्प संस्करण 16.10.0 के अनुसार<ref>{{Cite web|last=jawiddis|title=Visual Studio 2019 version 16.10 Release Notes|url=https://docs.microsoft.com/en-us/visualstudio/releases/2019/release-notes-v16.10#16.10.0|access-date=2021-07-13|website=docs.microsoft.com|language=en-us|archive-date=2021-08-11|archive-url=https://web.archive.org/web/20210811215520/https://docs.microsoft.com/en-us/visualstudio/releases/2019/release-notes-v16.10#16.10.0|url-status=live}}</ref> एक विकल्प <code>/std:सी++20</code> सी++20 मोड को सक्षम करने के लिए संस्करण 16.11.0 में जोड़ा गया है।<ref>{{Cite web|title=MSVC C++20 and the /std:c++20 Switch|url=https://devblogs.microsoft.com/cppblog/msvc-cpp20-and-the-std-cpp20-switch/|access-date=2021-09-07|website=docs.microsoft.com|language=en-us|archive-date=2021-09-06|archive-url=https://web.archive.org/web/20210906151426/https://devblogs.microsoft.com/cppblog/msvc-cpp20-and-the-std-cpp20-switch/|url-status=live}}</ref><ref>{{Citation |title=Visual Studio documentation for Microsoft C++ |date=2022-04-19 |url=https://github.com/MicrosoftDocs/cpp-docs/blob/578dd21279a897661686617375dff80f1eb2f40c/docs/overview/cpp-conformance-improvements.md |publisher=Microsoft Docs |access-date=2022-04-19 |archive-date=2022-04-19 |archive-url=https://web.archive.org/web/20220419161220/https://github.com/MicrosoftDocs/cpp-docs/blob/578dd21279a897661686617375dff80f1eb2f40c/docs/overview/cpp-conformance-improvements.md |url-status=live }}</ref> प्रोजेक्ट गुण → कॉन्फ़िगरेशन गुण → सी/सी ++ → भाषा → सी ++ भाषा मानक। | ||
माइक्रोसॉफ्ट का कंपाइलर केवल विंडोज, लिनक्स (और जैसे एंड्रॉइड और आईओएस) का समर्थन नहीं करता है। किन्तु इसके लिए लिनक्स डेवलपमेंट एक्सटेंशन के लिए विज़ुअल सी ++ की आवश्यकता होती है।<ref>{{Cite web |title=Visual Studio 2019 Compatibility |url=https://docs.microsoft.com/en-us/visualstudio/releases/2019/compatibility |access-date=2022-08-12 |website=docs.microsoft.com |language=en-us |archive-date=2020-06-03 |archive-url=https://web.archive.org/web/20200603060110/https://docs.microsoft.com/en-us/visualstudio/releases/2019/compatibility |url-status=live }}</ref> | |||
* [[बजना]] में कम सी++20 समर्थन है। जिसे विकल्प के साथ सक्षम किया जा सकता है। <code>-std=सी++20</code> (संस्करण 10 और बाद में) या <code>-std=सी++2a</code> (संस्करण 9 और पूर्व)।<ref>{{Cite web |title=Clang - C++ Programming Language Status |url=https://clang.llvm.org/cxx_status.html |access-date=2022-04-19 |website=clang.llvm.org |archive-date=2013-07-04 |archive-url=https://web.archive.org/web/20130704124639/http://clang.llvm.org/cxx_status.html |url-status=live }}</ref> | |||
माइक्रोसॉफ्ट का कंपाइलर | * [[एडिसन डिजाइन समूह|एडिसन प्रारूप समूह]] ने संस्करण 5.0 में सी++20 सुविधाओं को प्रयुक्त करना प्रारम्भ किया और संस्करण 6.1 के रूप में अधिकांशतः सी++20 कोर भाषा सुविधाओं का समर्थन करता है।<ref>{{Cite web |title=C++ compiler support - cppreference.com |url=https://en.cppreference.com/w/cpp/compiler_support |website=en.cppreference.com |access-date=2020-10-10 |archive-date=2020-10-03 |archive-url=https://web.archive.org/web/20201003141955/https://en.cppreference.com/w/cpp/compiler_support |url-status=live }}</ref> | ||
* जीएनयू संकलक संग्रह ने 2017 में आंशिक, प्रयोगात्मक सी++20 समर्थन जोड़ा और<ref>{{Cite web |title=Andrew Sutton - [PATCH] Add -std=c++2a |url=https://gcc.gnu.org/legacy-ml/gcc-patches/2017-07/msg01234.html |access-date=2022-04-19 |website=gcc.gnu.org |archive-date=2021-03-01 |archive-url=https://web.archive.org/web/20210301065559/https://gcc.gnu.org/legacy-ml/gcc-patches/2017-07/msg01234.html |url-status=live }}</ref> विकल्प के माध्यम से संस्करण 8 में <code>-std=सी++2a</code> क्लैंग के अनुसार जीसीसी ने इस विकल्प को <code>-std=सी++20</code> संस्करण 10 में भी जोड़ा। इसमें प्रायोगिक सी++20 समर्थन के अतिरिक्त जीएनयू एक्सटेंशन को सक्षम करने का विकल्प भी है। <code>-std=gnu++20</code>.<ref>{{Cite web |title=C++ Standards Support in GCC - GNU Project |url=https://gcc.gnu.org/projects/cxx-status.html |access-date=2022-04-19 |website=gcc.gnu.org |archive-date=2022-04-20 |archive-url=https://web.archive.org/web/20220420114133/https://gcc.gnu.org/projects/cxx-status.html |url-status=live }}</ref> | |||
* [[बजना]] में | |||
* [[एडिसन डिजाइन समूह]] ने संस्करण 5.0 में | |||
* | |||
== इतिहास == | == इतिहास == | ||
जुलाई 2017 (टोरंटो) में | जुलाई 2017 (टोरंटो) में सी++20 वर्किंग ड्राफ्ट में प्रयुक्त किए गए परिवर्तनों में सम्मिलित हैं:<ref>{{cite web|url=https://herbsutter.com/2017/07/15/trip-report-summer-iso-c-standards-meeting-toronto/|title=Trip report: Summer ISO C++ standards meeting (Toronto)|author=[[Herb Sutter]]|access-date=2017-07-16|archive-date=2017-08-06|archive-url=https://web.archive.org/web/20170806182136/https://herbsutter.com/2017/07/15/trip-report-summer-iso-c-standards-meeting-toronto/|url-status=live}}</ref> | ||
* अवधारणाएँ ( | * अवधारणाएँ (सी++) (जिसने इसे मानक में बनाया। वह एक कट-डाउन संस्करण है। इसे कॉन्सेप्ट लाइट के रूप में भी वर्णित किया गया है।<ref>{{Cite web |title=Concepts Lite: Constraining Templates with Predicates |url=https://isocpp.org/blog/2013/02/concepts-lite-constraining-templates-with-predicates-andrew-sutton-bjarne-s |website=isocpp.org |date=2013-02-24 |publisher=isocpp.org |author1=Andrew Sutton |author2=Bjarne Stroustrup |access-date=2021-01-13 |archive-date=2021-01-16 |archive-url=https://web.archive.org/web/20210116175846/https://isocpp.org/blog/2013/02/concepts-lite-constraining-templates-with-predicates-andrew-sutton-bjarne-s |url-status=live }}</ref>) | ||
* | * नामक प्रारंभकर्ता | ||
* <code>[=, this]</code> लैम्ब्डा कैप्चर के रूप में | * <code>[=, this]</code> लैम्ब्डा कैप्चर के रूप में | ||
* लैम्ब्डा पर टेम्पलेट पैरामीटर सूची | * लैम्ब्डा पर टेम्पलेट पैरामीटर सूची | ||
* <code>std::make_shared</code> और <code>std::allocate_shared</code> | * <code>std::make_shared</code> और <code>std::allocate_shared</code> सारणियों के लिए | ||
नवंबर 2017 (अल्बुकर्क) में | नवंबर 2017 (अल्बुकर्क) में कमी की बैठक में सी ++ 20 वर्किंग ड्राफ्ट में प्रयुक्त किए गए परिवर्तनों में सम्मिलित हैं:<ref>{{cite web|url=https://herbsutter.com/2017/11/11/trip-report-fall-iso-c-standards-meeting-albuquerque/|title=Trip report: Fall ISO C++ standards meeting (Albuquerque)|author=[[Herb Sutter]]|access-date=2017-12-04|archive-date=2019-02-13|archive-url=https://web.archive.org/web/20190213081959/https://herbsutter.com/2017/11/11/trip-report-fall-iso-c-standards-meeting-albuquerque/|url-status=live}}</ref><ref>{{cite web |last1=Smith |first1=Richard |last2=Perchik |first2=Dawn |last3=Köppe |first3=Thomas |title=N4714 Editors' Report -- Programming Languages -- C++ |url=https://github.com/cplusplus/draft/blob/master/papers/n4714.md |website=C++ standards drafts |publisher=[[GitHub]] |accessdate=27 December 2018 |archive-date=21 September 2022 |archive-url=https://web.archive.org/web/20220921201419/https://github.com/cplusplus/draft/blob/main/papers/n4714.md |url-status=live }}</ref> | ||
* स्पेसशिप ऑपरेटर का उपयोग करके | * स्पेसशिप ऑपरेटर का उपयोग करके तीनों ओर की तुलना, <code>operator <=></code> | ||
* एक श्रेणी-आधारित के | * एक श्रेणी-आधारित के अन्दर एक अतिरिक्त चर का आरंभीकरण <code>for</code> कथन | ||
* बिना मूल्यांकित संदर्भों में लैम्ब्डा | * बिना मूल्यांकित संदर्भों में लैम्ब्डा | ||
* डिफ़ॉल्ट रचनात्मक और असाइन करने योग्य स्टेटलेस लैम्ब्डा | * डिफ़ॉल्ट रचनात्मक और असाइन करने योग्य स्टेटलेस लैम्ब्डा | ||
Line 123: | Line 121: | ||
* स्ट्रिंग शाब्दिक टेम्पलेट पैरामीटर के रूप में | * स्ट्रिंग शाब्दिक टेम्पलेट पैरामीटर के रूप में | ||
* एटॉमिक स्मार्ट पॉइंटर्स (जैसे <code>std::atomic<shared_ptr<T>></code> और <code>std::atomic<weak_ptr<T>></code>) | * एटॉमिक स्मार्ट पॉइंटर्स (जैसे <code>std::atomic<shared_ptr<T>></code> और <code>std::atomic<weak_ptr<T>></code>) | ||
* <code>std::to_address</code> एक सूचक को कच्चे सूचक में | * <code>std::to_address</code> एक सूचक को कच्चे सूचक में परिवर्तितने के लिए | ||
मार्च 2018 (जैक्सनविले) में सी ++ 20 वर्किंग ड्राफ्ट में | मार्च 2018 (जैक्सनविले) में सी ++ 20 वर्किंग ड्राफ्ट में प्रयुक्त किए गए परिवर्तनों में सम्मिलित हैं:<ref>{{cite web|url=https://botondballo.wordpress.com/2018/03/28/trip-report-c-standards-meeting-in-jacksonville-march-2018/|title=Trip Report: C++ Standards Meeting in Jacksonville, March 2018|author=Botond Ballo|access-date=2019-05-18|archive-date=2019-05-18|archive-url=https://web.archive.org/web/20190518102815/https://botondballo.wordpress.com/2018/03/28/trip-report-c-standards-meeting-in-jacksonville-march-2018/|url-status=live}}</ref> | ||
* | * कुछ निश्चित परिस्थितियों में<code>typename</code>की आवश्यकता को दूर करना । | ||
* नए मानक गुण <code><nowiki>[[no_unique_address]]</nowiki></code>, <code><nowiki>[[likely]]</nowiki></code> और <code><nowiki>[[unlikely]]</nowiki></code> | * नए मानक गुण <code><nowiki>[[no_unique_address]]</nowiki></code>, <code><nowiki>[[likely]]</nowiki></code> और <code><nowiki>[[unlikely]]</nowiki></code> | ||
* कैलेंडर और समय-क्षेत्र के अतिरिक्त <code><chrono></code> | * कैलेंडर और समय-क्षेत्र के अतिरिक्त <code><chrono></code> | ||
* <code>std::span</code> | * <code>std::span</code> एक सन्निहित सारणी के लिए एक दृश्य प्रदान करता है। (संदर्भित अनुक्रम के अनुरूप <code>std::string_view</code> <code>span</code> को परिवर्तित सकते हैं।) | ||
* <code><version></code> हैडर | * <code><version></code> हैडर | ||
जून 2018 (रैपर्सविल) में ग्रीष्मकालीन बैठक में सी ++ 20 वर्किंग ड्राफ्ट में | जून 2018 (रैपर्सविल) में ग्रीष्मकालीन बैठक में सी ++ 20 वर्किंग ड्राफ्ट में प्रयुक्त किए गए परिवर्तनों में सम्मिलित हैं:<ref>{{cite web|url=https://herbsutter.com/2018/07/02/trip-report-summer-iso-c-standards-meeting-rapperswil/|title=Trip report: Summer ISO C++ standards meeting (Rapperswil)|author=[[Herb Sutter]]|access-date=2018-11-10|archive-date=2020-05-23|archive-url=https://web.archive.org/web/20200523083708/https://herbsutter.com/2018/07/02/trip-report-summer-iso-c-standards-meeting-rapperswil/|url-status=live}}</ref> | ||
* <s>अनुबंध</s> ( | * <s>अनुबंध</s> (सी++20 बाद के मानक के लिए स्थगित)<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0542r5.html|title=Support for contract based programming in C++|website=www.open-std.org|access-date=2018-11-10|archive-date=2020-01-15|archive-url=https://web.archive.org/web/20200115232059/http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p0542r5.html|url-status=live}}</ref> | ||
* फीचर टेस्ट मैक्रोज़ | * फीचर टेस्ट मैक्रोज़ | ||
* वस्तु अभ्यावेदन की बिट-कास्टिंग | * वस्तु अभ्यावेदन की बिट-कास्टिंग से कम वाचालता के साथ <code>memcpy()</code> और कंपाइलर इंटर्नल्स का लाभ लेने की अधिक क्षमता | ||
* सशर्त <code>explicit</code>, स्पष्ट संशोधक को बूलियन अभिव्यक्ति पर आकस्मिक होने की अनुमति देता है | * सशर्त <code>explicit</code>, स्पष्ट संशोधक को बूलियन अभिव्यक्ति पर आकस्मिक होने की अनुमति देता है | ||
* | * विपक्ष आभासी कार्य करता है। | ||
नवंबर 2018 (सैन डिएगो) में | नवंबर 2018 (सैन डिएगो) में कमी की बैठक में सी ++ 20 वर्किंग ड्राफ्ट में प्रयुक्त किए गए परिवर्तनों में सम्मिलित हैं:<ref>[http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/n4715.pdf fall meeting in November 2018]</ref> | ||
* पर्वतमाला (एक श्रेणी प्रस्ताव) | * पर्वतमाला (एक श्रेणी प्रस्ताव) | ||
* अवधारणा संक्षिप्त वाक्य रचना | * अवधारणा संक्षिप्त वाक्य रचना | ||
* <code>constexpr</code> <code>union</code>, <code>try</code> और <code>catch</code>, <code>dynamic_cast</code>, <code>typeid</code> और <code>std::pointer_traits</code>. | * <code>constexpr</code> <code>union</code>, <code>try</code> और <code>catch</code>, <code>dynamic_cast</code>, <code>typeid</code> और <code>std::pointer_traits</code>. | ||
* विभिन्न <code>constexpr</code> लाइब्रेरी बिट्स | * विभिन्न <code>constexpr</code> लाइब्रेरी बिट्स | ||
* | * <code>consteval</code> कीवर्ड नए का उपयोग कर तत्काल कार्य करता है। | ||
* हस्ताक्षरित पूर्णांक अब दो के पूरक का उपयोग करके दर्शाए जाने के लिए परिभाषित किए गए | * हस्ताक्षरित पूर्णांक अब दो के पूरक का उपयोग करके दर्शाए जाने के लिए परिभाषित किए गए हैं। (हस्ताक्षरित पूर्णांक अतिप्रवाह अपरिभाषित व्यवहार रहता है) | ||
* <s>अनुबंध सुविधा का परिशोधन (अनुबंध शर्तों में अभिगम नियंत्रण)</s><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1289r0.pdf|title=P1289R0 - Access control in contract conditions|access-date=2018-11-11|archive-date=2018-11-11|archive-url=https://web.archive.org/web/20181111133631/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1289r0.pdf|url-status=live}}</ref> (सी ++ 20 की सूची देखें | * <s>अनुबंध सुविधा का परिशोधन (अनुबंध शर्तों में अभिगम नियंत्रण)</s><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1289r0.pdf|title=P1289R0 - Access control in contract conditions|access-date=2018-11-11|archive-date=2018-11-11|archive-url=https://web.archive.org/web/20181111133631/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1289r0.pdf|url-status=live}}</ref> (सी ++ 20 की सूची देखें बाद के मानक के लिए स्थगित) | ||
* एक संशोधित स्मृति मॉडल | * एक संशोधित स्मृति मॉडल | ||
* डिफॉल्ट इनिशियलाइज़ेशन के साथ स्मार्ट पॉइंटर क्रिएशन | * डिफॉल्ट इनिशियलाइज़ेशन के साथ स्मार्ट पॉइंटर क्रिएशन | ||
फरवरी 2019 (कोना) में शीतकालीन बैठक में | फरवरी 2019 (कोना) में शीतकालीन बैठक में सी++20 वर्किंग ड्राफ्ट में प्रयुक्त किए गए परिवर्तनों में सम्मिलित हैं:<ref>[http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/n4765.pdf winter meeting in February 2019]</ref><ref>{{cite web|url=https://www.reddit.com/r/cpp/comments/au0c4x/201902_kona_iso_c_committee_trip_report_c20/|title=r/cpp - 2019-02 Kona ISO C++ Committee Trip Report (C++20 design is complete; Modules in C++20; Coroutines in C++20; Reflection TS v1 published; work begins on a C++ Ecosystem Technical Report)|website=reddit|language=en|access-date=2019-02-24|archive-date=2019-02-23|archive-url=https://web.archive.org/web/20190223234513/https://www.reddit.com/r/cpp/comments/au0c4x/201902_kona_iso_c_committee_trip_report_c20/|url-status=live}}</ref><ref>{{cite web|url=https://herbsutter.com/2019/02/23/trip-report-winter-iso-c-standards-meeting-kona/|title=Trip report: Winter ISO C++ standards meeting (Kona)|date=2019-02-23|website=Sutter's Mill|language=en|access-date=2019-02-24|archive-date=2019-02-24|archive-url=https://web.archive.org/web/20190224030105/https://herbsutter.com/2019/02/23/trip-report-winter-iso-c-standards-meeting-kona/|url-status=live}}</ref> | ||
* कोरआउटिन | * कोरआउटिन | ||
* मॉड्यूलर प्रोग्रामिंग | * मॉड्यूलर प्रोग्रामिंग | ||
* संरचित बाइंडिंग में विभिन्न सुधार (लैम्ब्डा कैप्चर के साथ सहभागिता, <code>static</code> और <code>thread_local</code> भंडारण अवधि) | * संरचित बाइंडिंग में विभिन्न सुधार (लैम्ब्डा कैप्चर के साथ सहभागिता, <code>static</code> और <code>thread_local</code> भंडारण अवधि) | ||
जुलाई 2019 (कोलोन) में ग्रीष्मकालीन बैठक में | जुलाई 2019 (कोलोन) में ग्रीष्मकालीन बैठक में सी++20 वर्किंग ड्राफ्ट में प्रयुक्त किए गए परिवर्तनों में सम्मिलित हैं:<ref>{{Cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/n4783.pdf|title=summer meeting in July 2019}}</ref><ref>{{cite web|url=https://www.reddit.com/r/cpp/comments/cfk9de/201907_cologne_iso_c_committee_trip_report_the/|title=r/cpp - 2019-07 Cologne ISO C++ Committee Trip Report — 🚀 The C++20 Eagle has Landed 🚀 (C++20 Committee Draft shipped; Contracts Moved From C++20 to a Study Group; 'std::format' in C++20; C++20 Synchronization Library)|website=reddit|language=en|access-date=2019-09-15|archive-date=2020-04-20|archive-url=https://web.archive.org/web/20200420142050/https://www.reddit.com/r/cpp/comments/cfk9de/201907_cologne_iso_c_committee_trip_report_the/|url-status=live}}</ref><ref>{{cite web|url=https://botondballo.wordpress.com/2019/07/26/trip-report-c-standards-meeting-in-cologne-july-2019/|title=Trip Report: C++ Standards Meeting in Cologne, July 2019|author=Botond Ballo|access-date=2019-08-05|archive-date=2020-02-26|archive-url=https://web.archive.org/web/20200226062236/https://botondballo.wordpress.com/2019/07/26/trip-report-c-standards-meeting-in-cologne-july-2019/|url-status=live}}</ref><ref>{{cite web|url=https://herbsutter.com/2019/07/20/trip-report-summer-iso-c-standards-meeting-cologne/|title=Trip report: Summer ISO C++ standards meeting (Cologne)|last=Sutter|first=Herb|access-date=2019-07-21|archive-date=2020-04-17|archive-url=https://web.archive.org/web/20200417181512/https://herbsutter.com/2019/07/20/trip-report-summer-iso-c-standards-meeting-cologne/|url-status=live}}</ref> | ||
* अनुबंध हटा दिए गए थे (सी ++ 20 की सूची देखें | * अनुबंध हटा दिए गए थे (सी ++ 20 की सूची देखें बाद के मानक के लिए स्थगित)<ref>{{cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1823r0.pdf|title=P1823R0: Remove Contracts from C++20|last=Josuttis|first=Nicolai|access-date=2019-08-20|archive-date=2020-08-13|archive-url=https://web.archive.org/web/20200813202348/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1823r0.pdf|url-status=live}}</ref> | ||
* सबस्क्रिप्ट एक्सप्रेशंस में कॉमा ऑपरेटर का उपयोग बहिष्कृत कर दिया गया है<ref name="open-std.org">{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1161r2.html|title=P1161R2: Deprecate uses of the comma operator in subscripting expressions|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-07-20|archive-url=https://web.archive.org/web/20190720101000/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1161r2.html|url-status=live}}</ref> | * सबस्क्रिप्ट एक्सप्रेशंस में कॉमा ऑपरेटर का उपयोग बहिष्कृत कर दिया गया है<ref name="open-std.org">{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1161r2.html|title=P1161R2: Deprecate uses of the comma operator in subscripting expressions|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-07-20|archive-url=https://web.archive.org/web/20190720101000/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1161r2.html|url-status=live}}</ref> | ||
* <code>constexpr</code> अतिरिक्त (तुच्छ डिफ़ॉल्ट प्रारंभिकरण,<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1331r1.pdf|title=Permitting trivial default initialization in constexpr contexts|access-date=2019-07-20|archive-date=2020-10-19|archive-url=https://web.archive.org/web/20201019233314/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1331r1.pdf|url-status=live}}</ref> अमूल्यांकित इनलाइन-असेंबली<ref>{{cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1668r1.html|title=P1668R1: Enabling Constexpr Intrinsics By Permitting Unevaluated inline-asm in Constexpr Functions|website=www.open-std.org|access-date=2019-07-20|archive-date=2020-01-19|archive-url=https://web.archive.org/web/20200119114611/http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1668r1.html|url-status=live}}</ref>) | * <code>constexpr</code> अतिरिक्त (तुच्छ डिफ़ॉल्ट प्रारंभिकरण,<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1331r1.pdf|title=Permitting trivial default initialization in constexpr contexts|access-date=2019-07-20|archive-date=2020-10-19|archive-url=https://web.archive.org/web/20201019233314/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1331r1.pdf|url-status=live}}</ref> अमूल्यांकित इनलाइन-असेंबली<ref>{{cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1668r1.html|title=P1668R1: Enabling Constexpr Intrinsics By Permitting Unevaluated inline-asm in Constexpr Functions|website=www.open-std.org|access-date=2019-07-20|archive-date=2020-01-19|archive-url=https://web.archive.org/web/20200119114611/http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1668r1.html|url-status=live}}</ref>) | ||
* दायरे का उपयोग करना <code>enum</code>s<ref name="P1099R5: Using Enum">{{cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1099r5.html|title=P1099R5: Using Enum|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820001959/http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1099r5.html|url-status=live}}</ref> | * दायरे का उपयोग करना <code>enum</code>s<ref name="P1099R5: Using Enum">{{cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1099r5.html|title=P1099R5: Using Enum|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820001959/http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1099r5.html|url-status=live}}</ref> | ||
* स्पेसशिप ऑपरेटर में विभिन्न परिवर्तन<ref>{{cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1186r3.html|title=P1186R3: When do you actually use <=>?|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820001956/http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1186r3.html|url-status=live}}</ref><ref>{{cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1630r1.html|title=P1630R1: Spaceship needs a tune-up|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820001956/http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1630r1.html|url-status=live}}</ref> | * स्पेसशिप ऑपरेटर में विभिन्न परिवर्तन<ref>{{cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1186r3.html|title=P1186R3: When do you actually use <=>?|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820001956/http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1186r3.html|url-status=live}}</ref><ref>{{cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1630r1.html|title=P1630R1: Spaceship needs a tune-up|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820001956/http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1630r1.html|url-status=live}}</ref> | ||
* डॉ: मॉड्यूल में | * डॉ: मॉड्यूल में न्यूनतम परिवर्तिताव<ref>{{cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1766r1.html|title=P1766R1: Mitigating minor modules maladies|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820002001/http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1766r1.html|url-status=live}}</ref> | ||
* <code>constinit</code> कीवर्ड | * <code>constinit</code> कीवर्ड | ||
* अवधारणाओं में परिवर्तन (निकालना <code>-> Type</code> वापसी-प्रकार-आवश्यकताएं<ref>{{cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1452r2.html|title=P1452R2: On the non-uniform semantics of return-type-requirements|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820001954/http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1452r2.html|url-status=live}}</ref>) | * अवधारणाओं में परिवर्तन (निकालना <code>-> Type</code> वापसी-प्रकार-आवश्यकताएं<ref>{{cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1452r2.html|title=P1452R2: On the non-uniform semantics of return-type-requirements|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820001954/http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1452r2.html|url-status=live}}</ref>) | ||
* (के सबसे) <code>[[Volatile (computer programming)|volatile]]</code> बहिष्कृत किया गया है<ref name="volatile">{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1152r3.html|title=P1152R4: Deprecating volatile|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-06-23|archive-url=https://web.archive.org/web/20190623042109/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1152r3.html|url-status=live}}</ref> | * (के सबसे) <code>[[Volatile (computer programming)|volatile]]</code> बहिष्कृत किया गया है<ref name="volatile">{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1152r3.html|title=P1152R4: Deprecating volatile|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-06-23|archive-url=https://web.archive.org/web/20190623042109/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1152r3.html|url-status=live}}</ref> | ||
* डॉ: <code><nowiki>[[nodiscard]]</nowiki></code> निर्माणकर्ताओं पर प्रभाव<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1771r1.pdf|title=P1771R1: nodiscard for constructors|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2022-09-21|archive-url=https://web.archive.org/web/20220921201418/https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1771r1.pdf|url-status=live}}</ref> | * डॉ: <code><nowiki>[[nodiscard]]</nowiki></code> निर्माणकर्ताओं पर प्रभाव<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1771r1.pdf|title=P1771R1: nodiscard for constructors|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2022-09-21|archive-url=https://web.archive.org/web/20220921201418/https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1771r1.pdf|url-status=live}}</ref> | ||
* नई मानक पुस्तकालय अवधारणाएँ [[PascalCase]] का उपयोग नहीं करेंगी ( | * नई मानक पुस्तकालय अवधारणाएँ [[PascalCase|पास्कलकेस]] का उपयोग नहीं करेंगी (किन्तु <code>standard_case</code> शेष मानक पुस्तकालय के रूप में)<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1754r1.pdf|title=P1754R1: Rename concepts to standard_case for C++20, while we still can|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820001957/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1754r1.pdf|url-status=live}}</ref> | ||
* पाठ स्वरूपण<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html|title=P0645R10: Text Formatting|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820002001/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html|url-status=live}}</ref><ref>{{cite web|url=http://www.zverovich.net/2019/07/23/std-format-cpp20.html|title=std::format in C++20|date=2019-07-23|website=www.zverovich.net|access-date=2019-09-15|archive-date=2019-07-23|archive-url=https://web.archive.org/web/20190723193126/http://www.zverovich.net/2019/07/23/std-format-cpp20.html|url-status=live}}</ref> (<code>chrono</code> | * पाठ स्वरूपण<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html|title=P0645R10: Text Formatting|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820002001/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html|url-status=live}}</ref><ref>{{cite web|url=http://www.zverovich.net/2019/07/23/std-format-cpp20.html|title=std::format in C++20|date=2019-07-23|website=www.zverovich.net|access-date=2019-09-15|archive-date=2019-07-23|archive-url=https://web.archive.org/web/20190723193126/http://www.zverovich.net/2019/07/23/std-format-cpp20.html|url-status=live}}</ref> (<code>chrono</code> एकीकर<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1361r2.pdf|title=P1361R2: Integration of chrono with text formatting|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820002000/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1361r2.pdf|url-status=live}}</ref> कोने की स्थिति सही करता है।<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1652r1.html|title=P1652R1: Printf corner cases in std::format|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820001955/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1652r1.html|url-status=live}}</ref>) | ||
* बिट ऑपरेशंस<ref name="P0553R4: Bit operations">{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0553r4.html|title=P0553R4: Bit operations|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-07-20|archive-url=https://web.archive.org/web/20190720101004/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0553r4.html|url-status=live}}</ref> | * बिट ऑपरेशंस<ref name="P0553R4: Bit operations">{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0553r4.html|title=P0553R4: Bit operations|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-07-20|archive-url=https://web.archive.org/web/20190720101004/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0553r4.html|url-status=live}}</ref> | ||
* <code>constexpr INVOKE</code><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1065r2.html|title=P1965R2: constexpr INVOKE|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820001957/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1065r2.html|url-status=live}}</ref> | * <code>constexpr INVOKE</code><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1065r2.html|title=P1965R2: constexpr INVOKE|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820001957/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1065r2.html|url-status=live}}</ref> | ||
Line 174: | Line 172: | ||
* जोड़ें <code><=></code> मानक पुस्तकालय के लिए ऑपरेटर<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1614r2.html|title=P1614R2: The Mothership has Landed - Adding <=> to the Library|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820002002/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1614r2.html|url-status=live}}</ref> | * जोड़ें <code><=></code> मानक पुस्तकालय के लिए ऑपरेटर<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1614r2.html|title=P1614R2: The Mothership has Landed - Adding <=> to the Library|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820002002/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1614r2.html|url-status=live}}</ref> | ||
* मानक पुस्तकालय के लिए हेडर इकाइयां<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1502r1.html|title=P1502R1: Standard library header units for C++20|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820001955/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1502r1.html|url-status=live}}</ref> | * मानक पुस्तकालय के लिए हेडर इकाइयां<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1502r1.html|title=P1502R1: Standard library header units for C++20|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820001955/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1502r1.html|url-status=live}}</ref> | ||
* तुल्यकालन सुविधाएं<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html|title=P1135R6: The C++20 Synchronization Library|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820001959/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html|url-status=live}}</ref> ( | * तुल्यकालन सुविधाएं<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html|title=P1135R6: The C++20 Synchronization Library|date=2019-07-20|website=www.open-std.org|access-date=2019-07-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820001959/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html|url-status=live}}</ref> ( कुशल परमाणु प्रतीक्षा और सेमाफोर,<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0514r4.pdf|title=P0514R4: Efficient concurrent waiting for C++20|publisher=|access-date=2019-07-20|archive-date=2018-08-18|archive-url=https://web.archive.org/web/20180818190437/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0514r4.pdf|url-status=live}}</ref> कुंडी और अवरोध,<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0666r2.pdf|title=P0666R2: Revised Latches and Barriers for C++20|publisher=|access-date=2019-07-20|archive-date=2018-08-18|archive-url=https://web.archive.org/web/20180818190352/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0666r2.pdf|url-status=live}}</ref> में सुधार <code>atomic_flag</code>,<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0995r1.html|title=P0995R1: Improving atomic_flag|publisher=|access-date=2019-07-20|archive-date=2019-07-20|archive-url=https://web.archive.org/web/20190720101004/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0995r1.html|url-status=live}}</ref> छोटे सीपीयू पर सी++ को प्रयुक्त करने योग्य न बनाएं<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1258r0.html|title=P1285R0: Don't Make C++ Unimplementable On Small CPUs|publisher=|access-date=2019-07-20|archive-date=2019-07-15|archive-url=https://web.archive.org/web/20190715230819/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1258r0.html|url-status=live}}</ref>) | ||
* <code>std::source_location</code><ref>{{cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1208r6.pdf|title=P1208R6: Adopt source_location from Library Fundamentals V3 for C++20|access-date=2019-08-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820002002/http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1208r6.pdf|url-status=live}}</ref> | * <code>std::source_location</code><ref>{{cite web|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1208r6.pdf|title=P1208R6: Adopt source_location from Library Fundamentals V3 for C++20|access-date=2019-08-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820002002/http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1208r6.pdf|url-status=live}}</ref> | ||
* <code>constexpr</code> कंटेनर (<code>std::string</code>,<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0980r1.pdf|title=P0980R1: Making std::string constexpr|access-date=2020-07-30|archive-date=2020-09-29|archive-url=https://web.archive.org/web/20200929222645/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0980r1.pdf|url-status=live}}</ref> <code>std::vector</code><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1004r2.pdf|title=P1004R2: Making std::vector constexpr|access-date=2020-07-30|archive-date=2020-09-28|archive-url=https://web.archive.org/web/20200928192253/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1004r2.pdf|url-status=live}}</ref>) | * <code>constexpr</code> कंटेनर (<code>std::string</code>,<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0980r1.pdf|title=P0980R1: Making std::string constexpr|access-date=2020-07-30|archive-date=2020-09-29|archive-url=https://web.archive.org/web/20200929222645/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0980r1.pdf|url-status=live}}</ref> <code>std::vector</code><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1004r2.pdf|title=P1004R2: Making std::vector constexpr|access-date=2020-07-30|archive-date=2020-09-28|archive-url=https://web.archive.org/web/20200928192253/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1004r2.pdf|url-status=live}}</ref>) | ||
* <code>std::stop_token</code> और धागे में | * <code>std::stop_token</code> और धागे में सम्मिलित होना (<code>std::jthread</code>)<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0660r10.pdf|title=P0660R10: Stop Token and Joining Thread|access-date=2019-08-20|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820001959/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0660r10.pdf|url-status=live}}</ref> | ||
नवंबर 2019 (बेलफास्ट) में फॉल मीटिंग में एनबी टिप्पणी प्रस्ताव के | नवंबर 2019 (बेलफास्ट) में फॉल मीटिंग में एनबी टिप्पणी प्रस्ताव के समय प्रयुक्त किए गए परिवर्तनों में सम्मिलित हैं:<ref>[https://wg21.link/n4814 fall meeting in November 2019]</ref><ref>{{cite web|url=https://www.reddit.com/r/cpp/comments/dtuov8/201911_belfast_iso_c_committee_trip_report/|title=r/cpp - 2019-11 Belfast ISO C++ Committee Trip Report — Started Processing Feedback on the C++20 Committee Draft; ABI Review Group Formed|website=reddit|language=en-US|access-date=2019-11-09|archive-date=2019-11-09|archive-url=https://web.archive.org/web/20191109121426/https://www.reddit.com/r/cpp/comments/dtuov8/201911_belfast_iso_c_committee_trip_report/|url-status=live}}</ref><ref>{{cite web|url=https://herbsutter.com/2019/11/09/trip-report-autumn-iso-c-standards-meeting-belfast/|title=Trip report: Autumn ISO C++ standards meeting (Belfast)|last=Sutter|first=Herb|date=2019-11-09|website=Sutter's Mill|language=en|access-date=2019-11-09|archive-date=2019-11-09|archive-url=https://web.archive.org/web/20191109130530/https://herbsutter.com/2019/11/09/trip-report-autumn-iso-c-standards-meeting-belfast/|url-status=live}}</ref><ref>{{cite web|url=https://botondballo.wordpress.com/2019/11/15/trip-report-c-standards-meeting-in-belfast-november-2019/|title=Trip Report: C++ Standards Meeting in Belfast, November 2019|last=botondballo|date=2019-11-15|website=There's Waldo!|language=en|access-date=2019-11-24|archive-date=2019-11-20|archive-url=https://web.archive.org/web/20191120074550/https://botondballo.wordpress.com/2019/11/15/trip-report-c-standards-meeting-in-belfast-november-2019/|url-status=live}}</ref> | ||
* | * गैर-प्रकार टेम्पलेट पैरामीटर्स (एनटीटीपी) में वर्ग प्रकार: उपयोगकर्ता परिभाषित नहीं होने का प्रतिबंध <code>operator==</code> अनुमति को हटा दिया गया है क्योंकि टेम्पलेट तर्क समानता का अर्थ स्वयं से अलग कर दिया गया है। <code>operator==</code><ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1907r0.html|title=P1907R0: Inconsistencies with non-type template parameters|date=2019-10-07|website=www.open-std.org|access-date=2019-11-09|archive-date=2019-11-09|archive-url=https://web.archive.org/web/20191109111420/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1907r0.html|url-status=live}}</ref> यह वर्ग-प्रकार एनटीटीपी में सारणी सदस्यों के लिए भी अनुमति देता है। | ||
* | * फ़्लोटिंग-पॉइंट प्रकार<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1714r1.html|title=P1714: NTTP are incomplete without float, double, and long double! (Revision 1)|date=2019-07-19|website=www.open-std.org|access-date=2019-11-09|archive-date=2019-11-09|archive-url=https://web.archive.org/web/20191109111421/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1714r1.html|url-status=live}}</ref> पॉइंटर्स और संदर्भ और यूनियन और यूनियन-जैसी कक्षाएं (गुमनाम यूनियनों वाले वर्ग प्रकार) को अब एनटीटीपी के रूप में अनुमति दी गई है। | ||
* | * फलन पहचान में अब अनुगामी आवश्यकताएं-खंड (पी1971) भी सम्मिलित हैं। | ||
* | * प्रतिबंधित गैर-टेम्प्लेट फलन हटा दिए गए हैं। | ||
* | * <code><compare></code> अब फ्रीस्टैंडिंग कार्यान्वयन में उपलब्ध है।<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1855r0.html|title=P1855R=: Make <compare> freestanding|date=2019-10-05|website=www.open-std.org|access-date=2019-11-09|archive-date=2019-11-09|archive-url=https://web.archive.org/web/20191109111422/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1855r0.html|url-status=live}}</ref> | ||
* | * <code>std::span</code>s [[typedef|टाइपडेफ]] से परिवर्तित दिया गया था। <code>index_type</code> को <code>size_type</code> शेष मानक पुस्तकालय के अनुरूप होना चाहिए।<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1872r0.pdf|title=P1872R0: span should have size_type not index_type|date=2019-09-16|website=www.open-std.org|access-date=2019-11-09|archive-date=2019-11-09|archive-url=https://web.archive.org/web/20191109111423/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1872r0.pdf|url-status=live}}</ref> | ||
* | * कोलोन बैठक के परिणामस्वरूप अवधारणाओं के नामकरण का पालन करने के लिए संकल्पना लक्षणों का नाम परिवर्तित दिया गया है। | ||
* | * श्रेणियों में कई सुधार और परिवर्धन (पी1456आर1: मूव-ओनली व्यूज,<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1456r0.pdf|title=P1456: Move-only views|date=2019-01-25|website=www.open-std.org|access-date=2019-11-09|archive-date=2019-11-09|archive-url=https://web.archive.org/web/20191109111425/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1456r0.pdf|url-status=live}}</ref> पी1391आर4: के लिए रेंज कंस्ट्रक्टर <code>std::string_view</code> (पात्रों की इटरेटर-जोड़ी से निर्माता),<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1391r4.pdf|title=P1391: Range constructor for std::string_view|date=|website=www.open-std.org|access-date=2019-11-09|archive-date=2020-01-04|archive-url=https://web.archive.org/web/20200104215539/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1391r4.pdf|url-status=live}}</ref> पी1394आर4: के लिए रेंज कंस्ट्रक्टर <code>std::span<ref></code>,<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1394r3.pdf|title=P1394: Range constructor for std::span|date=2019-08-02|website=www.open-std.org|access-date=2019-11-09|archive-date=2019-11-09|archive-url=https://web.archive.org/web/20191109111421/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1394r3.pdf|url-status=live}}</ref> पी1870आर1: अग्रेषण-श्रेणी<T> बहुत सूक्ष्म है।<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1870r0.html|title=P1870R1: forwarding-range<T> is too subtle|date=6 October 2019|website=www.open-std.org|access-date=2019-11-09|archive-date=2019-11-09|archive-url=https://web.archive.org/web/20191109111421/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1870r0.html|url-status=live}}</ref>) | ||
* | * <code>std::atomic<T></code>के लिए आरंभीकरण इसे डिफ़ॉल्ट और सूची आरंभीकरण के साथ काम करने के लिए परिवर्तित दिया गया है।<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0883r1.pdf|title=P0883: Fixing Atomic Initialization|date=2018-06-05|website=www.open-std.org|access-date=2019-11-09|archive-date=2019-11-09|archive-url=https://web.archive.org/web/20191109111419/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0883r1.pdf|url-status=live}}</ref> <code>std::latch</code> और <code>std::barrier</code> अब नए सदस्य फलन के माध्यम से कार्यान्वयन द्वारा समर्थित थ्रेड्स की अधिकतम संख्या <code>max()</code> को रिपोर्ट कर सकते हैं। | ||
* | * <code>std::weak_equality</code> और <code>std::strong_equality</code> उपयोग में न होने के कारण इन्हें हटा दिया गया है। | ||
* < | * <code>constexpr</code>में एल्गोरिदम <code><numeric></code> बनाया गया है। | ||
* | * सी++20 के नए या परिवर्तिते हुए फीचर के लिए मिसिंग फीचर-टेस्ट मैक्रोज़ जोड़े गए हैं।<ref>{{cite web|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1902r0.html|title=Missing feature-test macros 2018-2019|date=2019-10-06|website=www.open-std.org|access-date=2019-11-09|archive-date=2019-11-09|archive-url=https://web.archive.org/web/20191109111423/http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1902r0.html|url-status=live}}</ref> | ||
Line 200: | Line 198: | ||
* [https://www.iso.org/standard/79358.html Link to purchase ISO/IEC 14882:2020] from the ISO online store. | * [https://www.iso.org/standard/79358.html Link to purchase ISO/IEC 14882:2020] from the ISO online store. | ||
* [https://isocpp.org/files/papers/N4860.pdf N4860], the final draft version of the standard. | * [https://isocpp.org/files/papers/N4860.pdf N4860], the final draft version of the standard. | ||
* [http://www.open-std.org/jtc1/sc22/wg21/ JTC1/SC22/WG21]{{snd}} the ISO/IEC | * [http://www.open-std.org/jtc1/sc22/wg21/ JTC1/SC22/WG21]{{snd}} the ISO/IEC सी++ Standard Working Group (a.k.a. the सी++ Standards Committee) | ||
* Ranges ([https://github.com/ericniebler/range-v3 range-v3]) GitHub repository, by Eric Niebler | * Ranges ([https://github.com/ericniebler/range-v3 range-v3]) GitHub repository, by Eric Niebler | ||
{{C++ProLang}} | {{C++ProLang}} | ||
{{ISO standards}} | {{ISO standards}} | ||
[[Category: | [[Category:2020 में बनाई गई प्रोग्रामिंग लैंग्वेज]] | ||
[[Category:CS1 English-language sources (en)]] | |||
[[Category:Collapse templates]] | |||
[[Category:Created On 18/02/2023]] | [[Category:Created On 18/02/2023]] | ||
[[Category:Machine Translated Page]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Sidebars with styles needing conversion]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates generating microformats]] | |||
[[Category:Templates that are not mobile friendly]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:Wikipedia metatemplates]] | |||
[[Category:आईईसी मानकों]] | |||
[[Category:आईएसओ मानक]] | |||
[[Category:प्रोग्रामिंग भाषा मानकों]] | |||
[[Category:सी ++]] | |||
[[Category:सी ++ प्रोग्रामिंग भाषा परिवार]] |
Latest revision as of 12:58, 12 March 2023
C++ language revisions |
---|
सी++20 सी++ प्रोग्रामिंग भाषा के लिए मानकीकरण के लिए अंतर्राष्ट्रीय संगठन या अंतर्राष्ट्रीय इंटरनेशनल इलेक्ट्रोटेक्नीकल कमीशन मानक का एक संस्करण है। सी++20 ने सी++ मानक के पूर्व संस्करण को
परिवर्तित दिया। जिसे सी++17 कहा जाता है।[1] मानक को विधि रूप से अंतिम रूप दिया गया था।[2] फरवरी 2020 में प्राहा में बैठक में आईएसओ/आईईसी जेटीसी 1/एससी 22 द्वारा[3] 4 सितंबर 2020 को स्वीकृत किया गया[4][5] और दिसंबर 2020 में प्रकाशित हुआ।[6]
सुविधाएँ
सी++20 सी++14 या सी++17 की तुलना में अधिक नई प्रमुख विशेषताएं जोड़ता है।[7] सी++20 में स्वीकार किए गए परिवर्तनों में भी सम्मिलित हैं।[8]
भाषा
- अवधारणाएं (सी ++)[9] संक्षिप्त वाक्य रचना के साथ[10]
- मॉड्यूलर प्रोग्रामिंग[11]
- नामक प्रारंभकर्ता[12] (सी99 फीचर और सामान्य जीएनयू संकलक संग्रह और जी++ एक्सटेंशन पर आधारित)
[=, this]
लैम्ब्डा कैप्चर के रूप में[13]- लैम्ब्डा में टेम्पलेट पैरामीटर सूची[14]
- स्पेसशिप ऑपरेटर का उपयोग करके तीनों ओर की तुलना करना,
operator <=>
- एक श्रेणी-आधारित के अन्दर एक अतिरिक्त चर का आरंभीकरण
for
कथन[15] - बिना मूल्यांकित संदर्भों में लैम्ब्डा[16][17]
- डिफ़ॉल्ट रचनात्मक और असाइन करने योग्य स्टेटलेस लैम्ब्डा[16][18]
- लैम्ब्डा इनिट-कैप्चर में पैक विस्तार की अनुमति दें[16][19]
- गैर-प्रकार के टेम्पलेट पैरामीटर में वर्ग प्रकार स्ट्रिंग अक्षर को टेम्पलेट पैरामीटर के रूप में भी अनुमति देता है।[20]
- कुछ निश्चित परिस्थितियों में
typename
की आवश्यकता को दूर करना [21] - नए मानक गुण
[[no_unique_address]]
,[22][[likely]]
और[[unlikely]]
[23] - नियमानुसार
explicit
अनुमति देता है।explicit
एक बूलियन अभिव्यक्ति पर आकस्मिक होने के लिए संशोधक है।[24] - विस्तारित
constexpr
: आभासी कार्य,[25]union
,[26]try
औरcatch
,[27]dynamic_cast
औरtypeid
,[28]std::pointer_traits
[29] - नए
consteval
कीवर्ड का उपयोग कर तत्काल कार्य करता है।[30] - हस्ताक्षरित पूर्णांक अब दो के पूरक का उपयोग करके दर्शाए जाने के लिए परिभाषित किए गए हैं (हस्ताक्षरित पूर्णांक अतिप्रवाह अपरिभाषित व्यवहार रहता है)।[31]
- एक संशोधित स्मृति मॉडल[32]
- संरचित बाइंडिंग में विभिन्न सुधार (लैम्ब्डा कैप्चर के साथ सहभागिता,
static
औरthread_local
भंडारण अवधि)[33][34] - कोरूटीन[35]
using
के अन्तर्गतenum
s[36]constinit
कीवर्ड[37]
पुस्तकालय
- पर्वतमाला (एक श्रेणी प्रस्ताव)[38]
std::make_shared
औरstd::allocate_shared
सरणियों के लिए[39]- एटॉमिक स्मार्ट पॉइंटर्स (जैसे
std::atomic<shared_ptr<T>>
औरstd::atomic<weak_ptr<T>>
)[40] std::to_address
एक सूचक को कच्चे सूचक में परिवर्तितने के लिए[41]- कैलेंडर और समय-क्षेत्र के अतिरिक्त
<chrono>
[42] std::span
एक सन्निहित सारणी के लिए एक दृश्य प्रदान करता है। (संदर्भित अनुक्रम कोstd::string_view,
span
के अनुरूप परिवर्तित सकते हैं।)[43]std::erase
औरstd::erase_if
अधिकांश मानक कंटेनरों के लिए तत्व विलोपन को सरल बनाना[44]<version>
हैडर[45]std::bit_cast<>
से कम शब्द भंडार के साथ वस्तु निरूपण के प्रकार, कास्टिंग के लिएmemcpy()
और कंपाइलर इंटर्नल्स का लाभ लेने की अधिक क्षमता[46]- फीचर टेस्ट मैक्रोज़[47]
- विभिन्न कॉन्स्टेक्स लाइब्रेरी बिट्स[48]
- डिफॉल्ट इनिशियलाइज़ेशन के साथ स्मार्ट पॉइंटर क्रिएशन[49]
contains
सहयोगी कंटेनरों के लिए विधि[50]- बिट ऑपरेशंस जैसे लीडिंग/ट्रेलिंग ज़ीरो/वन काउंट[51]और लॉग 2 ऑपरेशंस[52][53][54]
std::bind_front
[55]
नए और परिवर्तित कीवर्ड्स
कई नए कीवर्ड जोड़े गए और नया स्पेसशिप ऑपरेटर operator <=>
) जैसे कि concept
, constinit
,[37] consteval
, co_await
, co_return
, co_yield
, requires
(प्लस के लिए परिवर्तित अर्थ export
) और char8_t
(यूटीएफ-8 समर्थन के लिए)[56] और explicit
सी ++ 20 के बाद से अभिव्यक्ति को ग्रहण कर सकता है।[57] इसके अधिकांश उपयोग volatile
कीवर्ड को बहिष्कृत कर दिया गया है।[58]
खोजशब्दों के अतिरिक्त नए विशेष अर्थ वाले पहचानकर्ता भी हैं। import
और module
. सी ++ 20 में नई विशेषताएँ:[[likely]]
, [[unlikely]]
, और [[no_unique_address]]
[59] हैं।
हटाया और पदावनत किया
हटाई गई विशेषताएं:[60]
- सी (प्रोग्रामिंग भाषा)-व्युत्पन्न हेडर
<ccomplex>
,<ciso646>
,<cstdalign>
,<cstdbool>
और<ctgmath>
हटा दिए गए क्योंकि वे सी++ में कोई उद्देश्य पूरा नहीं करते। इसी<*.h>
सी के साथ अनुकूलता के लिए हेडर बने रहते हैं। throw()
का उपयोग एक अपवाद विनिर्देश के रूप में हटा दिया गया था।- कुछ पूर्व में पदावनत पुस्तकालय सुविधाओं को हटा दिया गया था> जिनमें सम्मिलित हैं
std::uncaught_exception
,std::raw_storage_iterator
,std::is_literal_type
,std::is_literal_type_v
,std::result_of
औरstd::result_of_t
.
बहिष्कृत विशेषताएं:
- सबस्क्रिप्ट एक्सप्रेशन में कॉमा ऑपरेटर का उपयोग बहिष्कृत कर दिया गया है[61]
volatile
को बहिष्कृत किया गया है।[58]
विधि विशिष्टताओं के रूप में प्रकाशित
बाद के मानक के लिए स्थगित
- अनुबंध एक नए प्रस्ताव पर काम करने के लिए एक नया अध्ययन समूह (एसजी21) बनाया गया है।[66]
- प्रतिबिंब[67][68]
- मेटाक्लास[69]
- निष्पादक[70]
- नेटवर्किंग एक्सटेंशन,[71][72] एसिन, मूलभूत आई/ओ सेवाओं, टाइमर, बफ़र्स और बफर-ओरिएंटेड स्ट्रीम, सॉकेट्स और इंटरनेट प्रोटोकॉल (निष्पादकों द्वारा अवरुद्ध) सहित।
- गुण[73]
- विस्तारित प्रतिज्ञा[74]
संकलक समर्थन
पूर्ण समर्थन[75]
- माइक्रोसॉफ्ट विजुअल स्टूडियो 2019 इसके माध्यम से सभी सी++20 सुविधाओं का समर्थन करता है।
/std:सी++latest
विकल्प संस्करण 16.10.0 के अनुसार[76] एक विकल्प/std:सी++20
सी++20 मोड को सक्षम करने के लिए संस्करण 16.11.0 में जोड़ा गया है।[77][78] प्रोजेक्ट गुण → कॉन्फ़िगरेशन गुण → सी/सी ++ → भाषा → सी ++ भाषा मानक।
माइक्रोसॉफ्ट का कंपाइलर केवल विंडोज, लिनक्स (और जैसे एंड्रॉइड और आईओएस) का समर्थन नहीं करता है। किन्तु इसके लिए लिनक्स डेवलपमेंट एक्सटेंशन के लिए विज़ुअल सी ++ की आवश्यकता होती है।[79]
- बजना में कम सी++20 समर्थन है। जिसे विकल्प के साथ सक्षम किया जा सकता है।
-std=सी++20
(संस्करण 10 और बाद में) या-std=सी++2a
(संस्करण 9 और पूर्व)।[80] - एडिसन प्रारूप समूह ने संस्करण 5.0 में सी++20 सुविधाओं को प्रयुक्त करना प्रारम्भ किया और संस्करण 6.1 के रूप में अधिकांशतः सी++20 कोर भाषा सुविधाओं का समर्थन करता है।[81]
- जीएनयू संकलक संग्रह ने 2017 में आंशिक, प्रयोगात्मक सी++20 समर्थन जोड़ा और[82] विकल्प के माध्यम से संस्करण 8 में
-std=सी++2a
क्लैंग के अनुसार जीसीसी ने इस विकल्प को-std=सी++20
संस्करण 10 में भी जोड़ा। इसमें प्रायोगिक सी++20 समर्थन के अतिरिक्त जीएनयू एक्सटेंशन को सक्षम करने का विकल्प भी है।-std=gnu++20
.[83]
इतिहास
जुलाई 2017 (टोरंटो) में सी++20 वर्किंग ड्राफ्ट में प्रयुक्त किए गए परिवर्तनों में सम्मिलित हैं:[84]
- अवधारणाएँ (सी++) (जिसने इसे मानक में बनाया। वह एक कट-डाउन संस्करण है। इसे कॉन्सेप्ट लाइट के रूप में भी वर्णित किया गया है।[85])
- नामक प्रारंभकर्ता
[=, this]
लैम्ब्डा कैप्चर के रूप में- लैम्ब्डा पर टेम्पलेट पैरामीटर सूची
std::make_shared
औरstd::allocate_shared
सारणियों के लिए
नवंबर 2017 (अल्बुकर्क) में कमी की बैठक में सी ++ 20 वर्किंग ड्राफ्ट में प्रयुक्त किए गए परिवर्तनों में सम्मिलित हैं:[86][87]
- स्पेसशिप ऑपरेटर का उपयोग करके तीनों ओर की तुलना,
operator <=>
- एक श्रेणी-आधारित के अन्दर एक अतिरिक्त चर का आरंभीकरण
for
कथन - बिना मूल्यांकित संदर्भों में लैम्ब्डा
- डिफ़ॉल्ट रचनात्मक और असाइन करने योग्य स्टेटलेस लैम्ब्डा
- लैम्ब्डा इनिट-कैप्चर में पैक विस्तार की अनुमति दें
- स्ट्रिंग शाब्दिक टेम्पलेट पैरामीटर के रूप में
- एटॉमिक स्मार्ट पॉइंटर्स (जैसे
std::atomic<shared_ptr<T>>
औरstd::atomic<weak_ptr<T>>
) std::to_address
एक सूचक को कच्चे सूचक में परिवर्तितने के लिए
मार्च 2018 (जैक्सनविले) में सी ++ 20 वर्किंग ड्राफ्ट में प्रयुक्त किए गए परिवर्तनों में सम्मिलित हैं:[88]
- कुछ निश्चित परिस्थितियों में
typename
की आवश्यकता को दूर करना । - नए मानक गुण
[[no_unique_address]]
,[[likely]]
और[[unlikely]]
- कैलेंडर और समय-क्षेत्र के अतिरिक्त
<chrono>
std::span
एक सन्निहित सारणी के लिए एक दृश्य प्रदान करता है। (संदर्भित अनुक्रम के अनुरूपstd::string_view
span
को परिवर्तित सकते हैं।)<version>
हैडर
जून 2018 (रैपर्सविल) में ग्रीष्मकालीन बैठक में सी ++ 20 वर्किंग ड्राफ्ट में प्रयुक्त किए गए परिवर्तनों में सम्मिलित हैं:[89]
अनुबंध(सी++20 बाद के मानक के लिए स्थगित)[90]- फीचर टेस्ट मैक्रोज़
- वस्तु अभ्यावेदन की बिट-कास्टिंग से कम वाचालता के साथ
memcpy()
और कंपाइलर इंटर्नल्स का लाभ लेने की अधिक क्षमता - सशर्त
explicit
, स्पष्ट संशोधक को बूलियन अभिव्यक्ति पर आकस्मिक होने की अनुमति देता है - विपक्ष आभासी कार्य करता है।
नवंबर 2018 (सैन डिएगो) में कमी की बैठक में सी ++ 20 वर्किंग ड्राफ्ट में प्रयुक्त किए गए परिवर्तनों में सम्मिलित हैं:[91]
- पर्वतमाला (एक श्रेणी प्रस्ताव)
- अवधारणा संक्षिप्त वाक्य रचना
constexpr
union
,try
औरcatch
,dynamic_cast
,typeid
औरstd::pointer_traits
.- विभिन्न
constexpr
लाइब्रेरी बिट्स consteval
कीवर्ड नए का उपयोग कर तत्काल कार्य करता है।- हस्ताक्षरित पूर्णांक अब दो के पूरक का उपयोग करके दर्शाए जाने के लिए परिभाषित किए गए हैं। (हस्ताक्षरित पूर्णांक अतिप्रवाह अपरिभाषित व्यवहार रहता है)
अनुबंध सुविधा का परिशोधन (अनुबंध शर्तों में अभिगम नियंत्रण)[92] (सी ++ 20 की सूची देखें बाद के मानक के लिए स्थगित)- एक संशोधित स्मृति मॉडल
- डिफॉल्ट इनिशियलाइज़ेशन के साथ स्मार्ट पॉइंटर क्रिएशन
फरवरी 2019 (कोना) में शीतकालीन बैठक में सी++20 वर्किंग ड्राफ्ट में प्रयुक्त किए गए परिवर्तनों में सम्मिलित हैं:[93][94][95]
- कोरआउटिन
- मॉड्यूलर प्रोग्रामिंग
- संरचित बाइंडिंग में विभिन्न सुधार (लैम्ब्डा कैप्चर के साथ सहभागिता,
static
औरthread_local
भंडारण अवधि)
जुलाई 2019 (कोलोन) में ग्रीष्मकालीन बैठक में सी++20 वर्किंग ड्राफ्ट में प्रयुक्त किए गए परिवर्तनों में सम्मिलित हैं:[96][97][98][99]
- अनुबंध हटा दिए गए थे (सी ++ 20 की सूची देखें बाद के मानक के लिए स्थगित)[100]
- सबस्क्रिप्ट एक्सप्रेशंस में कॉमा ऑपरेटर का उपयोग बहिष्कृत कर दिया गया है[61]
constexpr
अतिरिक्त (तुच्छ डिफ़ॉल्ट प्रारंभिकरण,[101] अमूल्यांकित इनलाइन-असेंबली[102])- दायरे का उपयोग करना
enum
s[36] - स्पेसशिप ऑपरेटर में विभिन्न परिवर्तन[103][104]
- डॉ: मॉड्यूल में न्यूनतम परिवर्तिताव[105]
constinit
कीवर्ड- अवधारणाओं में परिवर्तन (निकालना
-> Type
वापसी-प्रकार-आवश्यकताएं[106]) - (के सबसे)
volatile
बहिष्कृत किया गया है[58] - डॉ:
[[nodiscard]]
निर्माणकर्ताओं पर प्रभाव[107] - नई मानक पुस्तकालय अवधारणाएँ पास्कलकेस का उपयोग नहीं करेंगी (किन्तु
standard_case
शेष मानक पुस्तकालय के रूप में)[108] - पाठ स्वरूपण[109][110] (
chrono
एकीकर[111] कोने की स्थिति सही करता है।[112]) - बिट ऑपरेशंस[51]
constexpr INVOKE
[113]- गणित स्थिरांक[114]
- परमाणुओं के लिए संगति परिवर्धन (
std::atomic_ref<T>
,[115]std::atomic<std::shared_ptr<T>>
[116]) - जोड़ें
<=>
मानक पुस्तकालय के लिए ऑपरेटर[117] - मानक पुस्तकालय के लिए हेडर इकाइयां[118]
- तुल्यकालन सुविधाएं[119] ( कुशल परमाणु प्रतीक्षा और सेमाफोर,[120] कुंडी और अवरोध,[121] में सुधार
atomic_flag
,[122] छोटे सीपीयू पर सी++ को प्रयुक्त करने योग्य न बनाएं[123]) std::source_location
[124]constexpr
कंटेनर (std::string
,[125]std::vector
[126])std::stop_token
और धागे में सम्मिलित होना (std::jthread
)[127]
नवंबर 2019 (बेलफास्ट) में फॉल मीटिंग में एनबी टिप्पणी प्रस्ताव के समय प्रयुक्त किए गए परिवर्तनों में सम्मिलित हैं:[128][129][130][131]
- गैर-प्रकार टेम्पलेट पैरामीटर्स (एनटीटीपी) में वर्ग प्रकार: उपयोगकर्ता परिभाषित नहीं होने का प्रतिबंध
operator==
अनुमति को हटा दिया गया है क्योंकि टेम्पलेट तर्क समानता का अर्थ स्वयं से अलग कर दिया गया है।operator==
[132] यह वर्ग-प्रकार एनटीटीपी में सारणी सदस्यों के लिए भी अनुमति देता है। - फ़्लोटिंग-पॉइंट प्रकार[133] पॉइंटर्स और संदर्भ और यूनियन और यूनियन-जैसी कक्षाएं (गुमनाम यूनियनों वाले वर्ग प्रकार) को अब एनटीटीपी के रूप में अनुमति दी गई है।
- फलन पहचान में अब अनुगामी आवश्यकताएं-खंड (पी1971) भी सम्मिलित हैं।
- प्रतिबंधित गैर-टेम्प्लेट फलन हटा दिए गए हैं।
<compare>
अब फ्रीस्टैंडिंग कार्यान्वयन में उपलब्ध है।[134]std::span
s टाइपडेफ से परिवर्तित दिया गया था।index_type
कोsize_type
शेष मानक पुस्तकालय के अनुरूप होना चाहिए।[135]- कोलोन बैठक के परिणामस्वरूप अवधारणाओं के नामकरण का पालन करने के लिए संकल्पना लक्षणों का नाम परिवर्तित दिया गया है।
- श्रेणियों में कई सुधार और परिवर्धन (पी1456आर1: मूव-ओनली व्यूज,[136] पी1391आर4: के लिए रेंज कंस्ट्रक्टर
std::string_view
(पात्रों की इटरेटर-जोड़ी से निर्माता),[137] पी1394आर4: के लिए रेंज कंस्ट्रक्टरstd::span<ref>
,[138] पी1870आर1: अग्रेषण-श्रेणी<T> बहुत सूक्ष्म है।[139]) std::atomic<T>
के लिए आरंभीकरण इसे डिफ़ॉल्ट और सूची आरंभीकरण के साथ काम करने के लिए परिवर्तित दिया गया है।[140]std::latch
औरstd::barrier
अब नए सदस्य फलन के माध्यम से कार्यान्वयन द्वारा समर्थित थ्रेड्स की अधिकतम संख्याmax()
को रिपोर्ट कर सकते हैं।std::weak_equality
औरstd::strong_equality
उपयोग में न होने के कारण इन्हें हटा दिया गया है।constexpr
में एल्गोरिदम<numeric>
बनाया गया है।- सी++20 के नए या परिवर्तिते हुए फीचर के लिए मिसिंग फीचर-टेस्ट मैक्रोज़ जोड़े गए हैं।[141]
संदर्भ
- ↑ "The Standard". isocpp.org. Archived from the original on 19 September 2020. Retrieved 7 September 2020.
- ↑ Sutter, Herb (2019-10-01). "P1000R3: C++ IS schedule" (PDF). Archived (PDF) from the original on 2019-11-14. Retrieved 2020-02-13.
- ↑ Dusíková, Hana (2019-11-06). "N4817: 2020 Prague Meeting Invitation and Information" (PDF). Archived (PDF) from the original on 2019-12-29. Retrieved 2020-02-13.
- ↑ "Current Status". isocpp.org. Archived from the original on 8 September 2020. Retrieved 7 September 2020.
- ↑ "C++20 Approved -- Herb Sutter". isocpp.org. Archived from the original on 11 September 2020. Retrieved 8 September 2020.
- ↑ "ISO/IEC 14882:2020". Archived from the original on 2020-12-16. Retrieved 2020-12-16.
- ↑ "Why does the C++ standard ship every three years?". 13 July 2019. Archived from the original on 13 July 2019. Retrieved 19 July 2019.
- ↑ "P0592R0: To boldly suggest an overall plan for C++20". Archived from the original on 2017-03-08. Retrieved 2017-05-06.
- ↑ "P0606R0: Concepts Are Ready" (PDF). Archived (PDF) from the original on 2017-03-28. Retrieved 2017-05-06.
- ↑ "P1141R1 - Yet another approach for constrained declarations". Archived from the original on 2018-11-11. Retrieved 2018-11-11.
- ↑ "N4720: Working Draft, Extensions to C++ for Modules" (PDF). Archived (PDF) from the original on 2019-04-30. Retrieved 2019-04-30.
- ↑ Tim Shen; Richard Smith. "Designated Initialization Wording". Archived from the original on 2017-10-15. Retrieved 2017-07-16.
- ↑ Thomas Köppe. "Allow lambda capture [=, this]". Archived from the original on 2019-02-09. Retrieved 2017-07-16.
- ↑ "Familiar template syntax for generic lambdas". Archived from the original on 2018-11-21. Retrieved 2017-07-16.
- ↑ "Range-based for statements with initializer". Archived from the original on 2017-04-06. Retrieved 2019-10-30.
- ↑ 16.0 16.1 16.2 "Trip Report: C++ Standards Meeting in Albuquerque, November 2017". There's Waldo! (in English). 2017-11-20. Archived from the original on 2017-12-11. Retrieved 2017-12-11.
- ↑ "Wording for lambdas in unevaluated contexts" (PDF). Archived (PDF) from the original on 2017-12-12. Retrieved 2017-12-11.
- ↑ "Default constructible and assignable stateless lambdas" (PDF). Archived (PDF) from the original on 2017-12-12. Retrieved 2017-12-11.
- ↑ "Pack expansion in lambda init-capture". www.open-std.org. Archived from the original on 2020-02-14. Retrieved 2017-12-11.
- ↑ "Class Types in Non-Type Template Parameters" (PDF). www.open-std.org. 2018-06-06. Archived (PDF) from the original on 2022-02-05. Retrieved 2022-02-18.
- ↑ Nina Ranns; Daveed Vandevoorde. "Down with typename!". Archived from the original on 2018-04-22. Retrieved 2019-05-18.
- ↑ "Language support for empty objects". Archived from the original on 2018-04-17. Retrieved 2019-08-04.
- ↑ "Proposed wording for likely and unlikely attributes (Revision 5)". Archived from the original on 2018-05-13. Retrieved 2019-05-18.
- ↑ "explicit(bool)". www.open-std.org. Archived from the original on 2018-07-20. Retrieved 2018-11-13.
- ↑ "Allowing Virtual Function Calls in Constant Expressions". www.open-std.org. Archived from the original on 2018-06-11. Retrieved 2019-03-11.
- ↑ "P1330R0 - Changing the active member of a union inside constexpr". Archived from the original on 2019-07-26. Retrieved 2019-07-26.
- ↑ "P1002R0 - Try-catch blocks in constexpr functions" (PDF). Archived (PDF) from the original on 2018-11-11. Retrieved 2018-11-11.
- ↑ "P1327R0 - Allowing dynamic_cast, polymorphic typeid in Constant Expressions". Archived from the original on 2019-07-26. Retrieved 2019-07-26.
- ↑ "P1006R1 - Constexpr in std::pointer_traits" (PDF). Archived (PDF) from the original on 2018-11-11. Retrieved 2018-11-11.
- ↑ "P1073R2 - Immediate functions". Archived from the original on 2018-10-26. Retrieved 2018-11-11.
- ↑ "P1236R0: Alternative Wording for P0907R4 Signed Integers are Two's Complement". Archived from the original on 2018-11-11. Retrieved 2018-11-11.
- ↑ "P0668R4: Revising the C++ memory model". Archived from the original on 2018-11-11. Retrieved 2018-11-11.
- ↑ "P1091R1: Extending structured bindings to be more like variable declarations". www.open-std.org. Archived from the original on 2019-01-26. Retrieved 2019-02-24.
- ↑ "P1091R2: Extending structured bindings to be more like variable declarations". www.open-std.org. Archived from the original on 2019-01-26. Retrieved 2019-02-24.
- ↑ "N4649: Working Draft, Technical Specification on C++ Extensions for Coroutines" (PDF). Archived (PDF) from the original on 2017-05-16. Retrieved 2017-05-06.
- ↑ 36.0 36.1 "P1099R5: Using Enum". www.open-std.org. 2019-07-20. Archived from the original on 2019-08-20. Retrieved 2019-07-20.
- ↑ 37.0 37.1 "P1143R2: Adding the constinit keyword". www.open-std.org. 2019-07-20. Archived from the original on 2019-08-20. Retrieved 2019-07-20.
- ↑ "P0896R3" (PDF). Archived (PDF) from the original on 2018-11-11. Retrieved 2018-11-11.
- ↑ "Extending make_shared to Support Arrays". Archived from the original on 2017-09-06. Retrieved 2020-02-12.
- ↑ Meredith, Alisdair; Sutter, Herb. "Revising atomic_shared_ptr for C++20". JTC1/SC22/WG21 - The C++ Standards Committee - ISOCPP. ISO. Archived from the original on 4 January 2018. Retrieved 27 December 2018.
- ↑ "Utility to convert a pointer to a raw pointer". Archived from the original on 2018-02-20. Retrieved 2020-02-12.
- ↑ Howard E. Hinnant; Tomasz Kamiński. "Extending <chrono> to Calendars and Time Zones". Archived from the original on 2018-05-13. Retrieved 2019-05-18.
- ↑ Neil MacIntosh; Stephan T. Lavavej. "span: bounds-safe views for sequences of objects". Archived from the original on 2019-05-18. Retrieved 2019-05-18.
- ↑ Alisdair Meredith; Stephan T. Lavavej (2018-10-04). "Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20". Archived from the original on 2021-03-08. Retrieved 2020-12-14.
- ↑ Alan Talbot. "<version>". Archived from the original on 2019-05-18. Retrieved 2019-05-18.
- ↑ "Bit-casting object representations". www.open-std.org. Archived from the original on 2018-08-18. Retrieved 2018-11-10.
- ↑ "Integrating feature-test macros into the C++ WD". www.open-std.org. Archived from the original on 2018-07-20. Retrieved 2018-11-10.
- ↑ "P1032R1 - Misc constexpr bits". Archived from the original on 2018-10-26. Retrieved 2018-11-11.
- ↑ "Smart pointer creation with default initialization". Archived from the original on 2019-01-26. Retrieved 2020-02-12.
- ↑ Mikhail Maltsev. "P0458R2: Checking for Existence of an Element in Associative Containers". Archived from the original on 2022-01-16. Retrieved 2022-01-02.
- ↑ 51.0 51.1 "P0553R4: Bit operations". www.open-std.org. 2019-07-20. Archived from the original on 2019-07-20. Retrieved 2019-07-20.
- ↑ "P0556R3: Integral power-of-2 operations". www.open-std.org. 2018-06-06. Archived from the original on 2019-06-26. Retrieved 2020-08-08.
- ↑ "P1355R2 Exposing a narrow contract for ceil2". www.open-std.org. 2019-06-11. Archived from the original on 2019-08-05. Retrieved 2020-08-08.
- ↑ "On the names of low-level bit manipulation functions" (PDF). www.open-std.org. 2020-02-11. Archived (PDF) from the original on 2020-03-24. Retrieved 2020-08-08.
- ↑ Tomasz Kamiński (2017-11-09). "Simplified partial function application". Archived from the original on 2020-09-28. Retrieved 2020-11-08.
- ↑ "C++ keywords - cppreference.com". en.cppreference.com. Archived from the original on 2012-03-19. Retrieved 2019-08-04.
- ↑ "explicit specifier - cppreference.com". en.cppreference.com. Archived from the original on 2012-02-21. Retrieved 2019-08-04.
- ↑ 58.0 58.1 58.2 "P1152R4: Deprecating volatile". www.open-std.org. 2019-07-20. Archived from the original on 2019-06-23. Retrieved 2019-07-20.
- ↑ "attribute specifier sequence(since C++11) - cppreference.com". en.cppreference.com. Archived from the original on 2012-07-05. Retrieved 2019-08-04.
- ↑ "Working Draft, Standard for Programming Language C++ (Annex C, §C.1)" (PDF). Archived (PDF) from the original on 2020-04-27. Retrieved 2020-11-18.
- ↑ 61.0 61.1 "P1161R2: Deprecate uses of the comma operator in subscripting expressions". www.open-std.org. Archived from the original on 2019-07-20. Retrieved 2019-07-20.
- ↑ "C++ Extensions for Parallelism Version 2". Archived (PDF) from the original on 2022-09-21. Retrieved 2019-07-09.
- ↑ "Task Blocks". Archived from the original on 2017-09-19. Retrieved 2017-07-23.
- ↑ "C++ Extensions for Reflection". Archived (PDF) from the original on 2022-09-21. Retrieved 2019-07-09.
- ↑ "C++ Extensions for Networking". Archived (PDF) from the original on 2022-09-21. Retrieved 2019-07-09.
- ↑ Sutter, Herb (2019-07-20). "Trip report: Summer ISO C++ standards meeting (Cologne)". Sutter's Mill (in English). Archived from the original on 2020-04-17. Retrieved 2019-07-21.
- ↑ "Reflections on the reflection proposals - Meeting C++". meetingcpp.com (in English). Archived from the original on 2017-06-23. Retrieved 2017-06-30.
- ↑ "Static reflection". www.open-std.org. Archived from the original on 2020-02-22. Retrieved 2018-11-10.
- ↑ Herb Sutter. "मेटाक्लासेस" (PDF). Archived (PDF) from the original on 2020-11-11. Retrieved 2017-07-23.
- ↑ "A Unified Executors Proposal for C++". www.open-std.org. Archived from the original on 2020-02-20. Retrieved 2019-02-24.
- ↑ "N4771: Working Draft, C++ Extensions for Networking" (PDF). Archived (PDF) from the original on 2020-04-19. Retrieved 2019-03-23.
- ↑ "ISO/IEC TS 19216:2018 Programming Languages -- C++ Extensions for Networking". Archived from the original on 2019-01-15. Retrieved 2018-12-17.
- ↑ "A General Property Customization Mechanism". www.open-std.org. Archived from the original on 2020-01-19. Retrieved 2019-02-24.
- ↑ "A Unified Futures Proposal for C++". Archived from the original on 2022-09-21. Retrieved 2019-07-08.
- ↑ "C++ compiler support - cppreference.com". en.cppreference.com. Archived from the original on 2022-08-08. Retrieved 2022-08-12.
- ↑ jawiddis. "Visual Studio 2019 version 16.10 Release Notes". docs.microsoft.com (in English). Archived from the original on 2021-08-11. Retrieved 2021-07-13.
- ↑ "MSVC C++20 and the /std:c++20 Switch". docs.microsoft.com (in English). Archived from the original on 2021-09-06. Retrieved 2021-09-07.
- ↑ Visual Studio documentation for Microsoft C++, Microsoft Docs, 2022-04-19, archived from the original on 2022-04-19, retrieved 2022-04-19
- ↑ "Visual Studio 2019 Compatibility". docs.microsoft.com (in English). Archived from the original on 2020-06-03. Retrieved 2022-08-12.
- ↑ "Clang - C++ Programming Language Status". clang.llvm.org. Archived from the original on 2013-07-04. Retrieved 2022-04-19.
- ↑ "C++ compiler support - cppreference.com". en.cppreference.com. Archived from the original on 2020-10-03. Retrieved 2020-10-10.
- ↑ "Andrew Sutton - [PATCH] Add -std=c++2a". gcc.gnu.org. Archived from the original on 2021-03-01. Retrieved 2022-04-19.
- ↑ "C++ Standards Support in GCC - GNU Project". gcc.gnu.org. Archived from the original on 2022-04-20. Retrieved 2022-04-19.
- ↑ Herb Sutter. "Trip report: Summer ISO C++ standards meeting (Toronto)". Archived from the original on 2017-08-06. Retrieved 2017-07-16.
- ↑ Andrew Sutton; Bjarne Stroustrup (2013-02-24). "Concepts Lite: Constraining Templates with Predicates". isocpp.org. isocpp.org. Archived from the original on 2021-01-16. Retrieved 2021-01-13.
- ↑ Herb Sutter. "Trip report: Fall ISO C++ standards meeting (Albuquerque)". Archived from the original on 2019-02-13. Retrieved 2017-12-04.
- ↑ Smith, Richard; Perchik, Dawn; Köppe, Thomas. "N4714 Editors' Report -- Programming Languages -- C++". C++ standards drafts. GitHub. Archived from the original on 21 September 2022. Retrieved 27 December 2018.
- ↑ Botond Ballo. "Trip Report: C++ Standards Meeting in Jacksonville, March 2018". Archived from the original on 2019-05-18. Retrieved 2019-05-18.
- ↑ Herb Sutter. "Trip report: Summer ISO C++ standards meeting (Rapperswil)". Archived from the original on 2020-05-23. Retrieved 2018-11-10.
- ↑ "Support for contract based programming in C++". www.open-std.org. Archived from the original on 2020-01-15. Retrieved 2018-11-10.
- ↑ fall meeting in November 2018
- ↑ "P1289R0 - Access control in contract conditions" (PDF). Archived (PDF) from the original on 2018-11-11. Retrieved 2018-11-11.
- ↑ winter meeting in February 2019
- ↑ "r/cpp - 2019-02 Kona ISO C++ Committee Trip Report (C++20 design is complete; Modules in C++20; Coroutines in C++20; Reflection TS v1 published; work begins on a C++ Ecosystem Technical Report)". reddit (in English). Archived from the original on 2019-02-23. Retrieved 2019-02-24.
- ↑ "Trip report: Winter ISO C++ standards meeting (Kona)". Sutter's Mill (in English). 2019-02-23. Archived from the original on 2019-02-24. Retrieved 2019-02-24.
- ↑ "summer meeting in July 2019" (PDF).
- ↑ "r/cpp - 2019-07 Cologne ISO C++ Committee Trip Report — 🚀 The C++20 Eagle has Landed 🚀 (C++20 Committee Draft shipped; Contracts Moved From C++20 to a Study Group; 'std::format' in C++20; C++20 Synchronization Library)". reddit (in English). Archived from the original on 2020-04-20. Retrieved 2019-09-15.
- ↑ Botond Ballo. "Trip Report: C++ Standards Meeting in Cologne, July 2019". Archived from the original on 2020-02-26. Retrieved 2019-08-05.
- ↑ Sutter, Herb. "Trip report: Summer ISO C++ standards meeting (Cologne)". Archived from the original on 2020-04-17. Retrieved 2019-07-21.
- ↑ Josuttis, Nicolai. "P1823R0: Remove Contracts from C++20" (PDF). Archived (PDF) from the original on 2020-08-13. Retrieved 2019-08-20.
- ↑ "Permitting trivial default initialization in constexpr contexts" (PDF). Archived (PDF) from the original on 2020-10-19. Retrieved 2019-07-20.
- ↑ "P1668R1: Enabling Constexpr Intrinsics By Permitting Unevaluated inline-asm in Constexpr Functions". www.open-std.org. Archived from the original on 2020-01-19. Retrieved 2019-07-20.
- ↑ "P1186R3: When do you actually use <=>?". www.open-std.org. 2019-07-20. Archived from the original on 2019-08-20. Retrieved 2019-07-20.
- ↑ "P1630R1: Spaceship needs a tune-up". www.open-std.org. 2019-07-20. Archived from the original on 2019-08-20. Retrieved 2019-07-20.
- ↑ "P1766R1: Mitigating minor modules maladies". www.open-std.org. 2019-07-20. Archived from the original on 2019-08-20. Retrieved 2019-07-20.
- ↑ "P1452R2: On the non-uniform semantics of return-type-requirements". www.open-std.org. 2019-07-20. Archived from the original on 2019-08-20. Retrieved 2019-07-20.
- ↑ "P1771R1: nodiscard for constructors" (PDF). www.open-std.org. 2019-07-20. Archived (PDF) from the original on 2022-09-21. Retrieved 2019-07-20.
- ↑ "P1754R1: Rename concepts to standard_case for C++20, while we still can" (PDF). www.open-std.org. 2019-07-20. Archived (PDF) from the original on 2019-08-20. Retrieved 2019-07-20.
- ↑ "P0645R10: Text Formatting". www.open-std.org. 2019-07-20. Archived from the original on 2019-08-20. Retrieved 2019-07-20.
- ↑ "std::format in C++20". www.zverovich.net. 2019-07-23. Archived from the original on 2019-07-23. Retrieved 2019-09-15.
- ↑ "P1361R2: Integration of chrono with text formatting" (PDF). www.open-std.org. 2019-07-20. Archived (PDF) from the original on 2019-08-20. Retrieved 2019-07-20.
- ↑ "P1652R1: Printf corner cases in std::format". www.open-std.org. 2019-07-20. Archived from the original on 2019-08-20. Retrieved 2019-07-20.
- ↑ "P1965R2: constexpr INVOKE". www.open-std.org. 2019-07-20. Archived from the original on 2019-08-20. Retrieved 2019-07-20.
- ↑ "P0631R8: Math Constants" (PDF). www.open-std.org. 2019-07-20. Archived (PDF) from the original on 2019-08-20. Retrieved 2019-07-20.
- ↑ "P1643R1: Add wait/notify to atomic_ref<T>". www.open-std.org. 2019-07-20. Archived from the original on 2019-08-20. Retrieved 2019-07-20.
- ↑ "P1664R0: Add wait/notify to atomic<shared_ptr<T>>". www.open-std.org. 2019-07-20. Archived from the original on 2021-11-05. Retrieved 2019-07-20.
- ↑ "P1614R2: The Mothership has Landed - Adding <=> to the Library". www.open-std.org. 2019-07-20. Archived from the original on 2019-08-20. Retrieved 2019-07-20.
- ↑ "P1502R1: Standard library header units for C++20". www.open-std.org. 2019-07-20. Archived from the original on 2019-08-20. Retrieved 2019-07-20.
- ↑ "P1135R6: The C++20 Synchronization Library". www.open-std.org. 2019-07-20. Archived from the original on 2019-08-20. Retrieved 2019-07-20.
- ↑ "P0514R4: Efficient concurrent waiting for C++20" (PDF). Archived (PDF) from the original on 2018-08-18. Retrieved 2019-07-20.
- ↑ "P0666R2: Revised Latches and Barriers for C++20" (PDF). Archived (PDF) from the original on 2018-08-18. Retrieved 2019-07-20.
- ↑ "P0995R1: Improving atomic_flag". Archived from the original on 2019-07-20. Retrieved 2019-07-20.
- ↑ "P1285R0: Don't Make C++ Unimplementable On Small CPUs". Archived from the original on 2019-07-15. Retrieved 2019-07-20.
- ↑ "P1208R6: Adopt source_location from Library Fundamentals V3 for C++20" (PDF). Archived (PDF) from the original on 2019-08-20. Retrieved 2019-08-20.
- ↑ "P0980R1: Making std::string constexpr" (PDF). Archived (PDF) from the original on 2020-09-29. Retrieved 2020-07-30.
- ↑ "P1004R2: Making std::vector constexpr" (PDF). Archived (PDF) from the original on 2020-09-28. Retrieved 2020-07-30.
- ↑ "P0660R10: Stop Token and Joining Thread" (PDF). Archived (PDF) from the original on 2019-08-20. Retrieved 2019-08-20.
- ↑ fall meeting in November 2019
- ↑ "r/cpp - 2019-11 Belfast ISO C++ Committee Trip Report — Started Processing Feedback on the C++20 Committee Draft; ABI Review Group Formed". reddit (in English). Archived from the original on 2019-11-09. Retrieved 2019-11-09.
- ↑ Sutter, Herb (2019-11-09). "Trip report: Autumn ISO C++ standards meeting (Belfast)". Sutter's Mill (in English). Archived from the original on 2019-11-09. Retrieved 2019-11-09.
- ↑ botondballo (2019-11-15). "Trip Report: C++ Standards Meeting in Belfast, November 2019". There's Waldo! (in English). Archived from the original on 2019-11-20. Retrieved 2019-11-24.
- ↑ "P1907R0: Inconsistencies with non-type template parameters". www.open-std.org. 2019-10-07. Archived from the original on 2019-11-09. Retrieved 2019-11-09.
- ↑ "P1714: NTTP are incomplete without float, double, and long double! (Revision 1)". www.open-std.org. 2019-07-19. Archived from the original on 2019-11-09. Retrieved 2019-11-09.
- ↑ "P1855R=: Make <compare> freestanding". www.open-std.org. 2019-10-05. Archived from the original on 2019-11-09. Retrieved 2019-11-09.
- ↑ "P1872R0: span should have size_type not index_type" (PDF). www.open-std.org. 2019-09-16. Archived (PDF) from the original on 2019-11-09. Retrieved 2019-11-09.
- ↑ "P1456: Move-only views" (PDF). www.open-std.org. 2019-01-25. Archived (PDF) from the original on 2019-11-09. Retrieved 2019-11-09.
- ↑ "P1391: Range constructor for std::string_view" (PDF). www.open-std.org. Archived (PDF) from the original on 2020-01-04. Retrieved 2019-11-09.
- ↑ "P1394: Range constructor for std::span" (PDF). www.open-std.org. 2019-08-02. Archived (PDF) from the original on 2019-11-09. Retrieved 2019-11-09.
- ↑ "P1870R1: forwarding-range<T> is too subtle". www.open-std.org. 6 October 2019. Archived from the original on 2019-11-09. Retrieved 2019-11-09.
- ↑ "P0883: Fixing Atomic Initialization" (PDF). www.open-std.org. 2018-06-05. Archived (PDF) from the original on 2019-11-09. Retrieved 2019-11-09.
- ↑ "Missing feature-test macros 2018-2019". www.open-std.org. 2019-10-06. Archived from the original on 2019-11-09. Retrieved 2019-11-09.
बाहरी संबंध
- Link to purchase ISO/IEC 14882:2020 from the ISO online store.
- N4860, the final draft version of the standard.
- JTC1/SC22/WG21 – the ISO/IEC सी++ Standard Working Group (a.k.a. the सी++ Standards Committee)
- Ranges (range-v3) GitHub repository, by Eric Niebler