सी ++ 20: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 5: Line 5:
== सुविधाएँ ==
== सुविधाएँ ==


C++20 [[C++14]] या C++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> C++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>
सी++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=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]] फीचर और सामान्य GNU [[जीएनयू संकलक संग्रह]]|g++ एक्सटेंशन पर आधारित)
* नामक प्रारंभकर्ता<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 &lt;=&gt;</code>
* स्पेसशिप ऑपरेटर का उपयोग करके तीनों ओर की तुलना करना, <code>operator &lt;=&gt;</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>
* एक श्रेणी-आधारित के अन्दर एक अतिरिक्त चर का आरंभीकरण <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>
* गैर-प्रकार के टेम्पलेट पैरामीटर में वर्ग प्रकार, स्ट्रिंग अक्षर को टेम्पलेट पैरामीटर के रूप में भी अनुमति देता है।<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>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>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>
* नए <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>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>
* <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 40: Line 41:
* <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>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::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::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>, अधिकांश मानक कंटेनरों के लिए तत्व विलोपन को सरल बनाना<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>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>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>
* <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>
Line 68: Line 69:
* [[सी (प्रोग्रामिंग भाषा)]]-व्युत्पन्न हेडर <code><ccomplex></code>, <code><ciso646></code>, <code><cstdalign></code>, <code><cstdbool></code> और <code><ctgmath></code> हटा दिए गए, क्योंकि वे C++ में कोई उद्देश्य पूरा नहीं करते। (इसी <code><*.h></code> सी के साथ अनुकूलता के लिए हेडर बने रहते हैं।)
* [[सी (प्रोग्रामिंग भाषा)]]-व्युत्पन्न हेडर <code><ccomplex></code>, <code><ciso646></code>, <code><cstdalign></code>, <code><cstdbool></code> और <code><ctgmath></code> हटा दिए गए, क्योंकि वे C++ में कोई उद्देश्य पूरा नहीं करते। (इसी <code><*.h></code> सी के साथ अनुकूलता के लिए हेडर बने रहते हैं।)
* का उपयोग <code>throw()</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>.
* कुछ पूर्व में पदावनत पुस्तकालय सुविधाओं को हटा दिया गया था, जिनमें सम्मिलित हैं <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>.


बहिष्कृत विशेषताएं:
बहिष्कृत विशेषताएं:
Line 108: Line 109:
== इतिहास ==
== इतिहास ==


जुलाई 2017 (टोरंटो) में C++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>
जुलाई 2017 (टोरंटो) में C++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>
* अवधारणाएँ (C++) (जिसने इसे मानक में बनाया वह एक कट-डाउन संस्करण है; इसे कॉन्सेप्ट लाइट के रूप में भी वर्णित किया गया है<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>)
* अवधारणाएँ (C++) (जिसने इसे मानक में बनाया वह एक कट-डाउन संस्करण है; इसे कॉन्सेप्ट लाइट के रूप में भी वर्णित किया गया है<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>)
* नामित प्रारंभकर्ता
* नामित प्रारंभकर्ता
Line 115: Line 116:
* <code>std::make_shared</code> और <code>std::allocate_shared</code> सरणियों के लिए
* <code>std::make_shared</code> और <code>std::allocate_shared</code> सरणियों के लिए


नवंबर 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>
नवंबर 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 &lt;=&gt;</code>
* स्पेसशिप ऑपरेटर का उपयोग करके तीन-तरफ़ा तुलना, <code>operator &lt;=&gt;</code>
* एक श्रेणी-आधारित के भीतर एक अतिरिक्त चर का आरंभीकरण <code>for</code> कथन
* एक श्रेणी-आधारित के अन्दर एक अतिरिक्त चर का आरंभीकरण <code>for</code> कथन
* बिना मूल्यांकित संदर्भों में लैम्ब्डा
* बिना मूल्यांकित संदर्भों में लैम्ब्डा
* डिफ़ॉल्ट रचनात्मक और असाइन करने योग्य स्टेटलेस लैम्ब्डा
* डिफ़ॉल्ट रचनात्मक और असाइन करने योग्य स्टेटलेस लैम्ब्डा
Line 125: Line 126:
* <code>std::to_address</code> एक सूचक को कच्चे सूचक में बदलने के लिए
* <code>std::to_address</code> एक सूचक को कच्चे सूचक में बदलने के लिए


मार्च 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>
मार्च 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>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>
Line 132: Line 133:
* <code><version></code> हैडर
* <code><version></code> हैडर


जून 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>
जून 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> (C++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>
* <s>अनुबंध</s> (C++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>
* फीचर टेस्ट मैक्रोज़
* फीचर टेस्ट मैक्रोज़
Line 139: Line 140:
* constexpr आभासी कार्य करता है
* constexpr आभासी कार्य करता है


नवंबर 2018 (सैन डिएगो) में गिरावट की बैठक में सी ++ 20 वर्किंग ड्राफ्ट में लागू किए गए परिवर्तनों में शामिल हैं:<ref>[http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/n4715.pdf fall meeting in November 2018]</ref>
नवंबर 2018 (सैन डिएगो) में गिरावट की बैठक में सी ++ 20 वर्किंग ड्राफ्ट में लागू किए गए परिवर्तनों में सम्मिलित हैं:<ref>[http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/n4715.pdf fall meeting in November 2018]</ref>
* पर्वतमाला (एक श्रेणी प्रस्ताव)
* पर्वतमाला (एक श्रेणी प्रस्ताव)
* अवधारणा संक्षिप्त वाक्य रचना
* अवधारणा संक्षिप्त वाक्य रचना
Line 150: Line 151:
* डिफॉल्ट इनिशियलाइज़ेशन के साथ स्मार्ट पॉइंटर क्रिएशन
* डिफॉल्ट इनिशियलाइज़ेशन के साथ स्मार्ट पॉइंटर क्रिएशन


फरवरी 2019 (कोना) में शीतकालीन बैठक में C++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>
फरवरी 2019 (कोना) में शीतकालीन बैठक में C++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 (कोलोन) में ग्रीष्मकालीन बैठक में C++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>
जुलाई 2019 (कोलोन) में ग्रीष्मकालीन बैठक में C++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 की सूची देखें # बाद के मानक के लिए स्थगित)<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>
* अनुबंध हटा दिए गए थे (सी ++ 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>
Line 177: Line 178:
* <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::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>
* <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 (बेलफास्ट) में फॉल मीटिंग में एनबी टिप्पणी प्रस्ताव के दौरान लागू किए गए परिवर्तनों में शामिल हैं:<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>
नवंबर 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>
* <!-- US 114 --> गैर-प्रकार टेम्पलेट पैरामीटर्स (एनटीटीपी) में वर्ग प्रकार: उपयोगकर्ता परिभाषित नहीं होने का प्रतिबंध <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> यह वर्ग-प्रकार NTTP में सरणी सदस्यों के लिए भी अनुमति देता है।
* <!-- US 114 --> गैर-प्रकार टेम्पलेट पैरामीटर्स (एनटीटीपी) में वर्ग प्रकार: उपयोगकर्ता परिभाषित नहीं होने का प्रतिबंध <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> यह वर्ग-प्रकार NTTP में सरणी सदस्यों के लिए भी अनुमति देता है।
* <!-- US 102 --> फ़्लोटिंग-पॉइंट प्रकार,<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> पॉइंटर्स और संदर्भ और यूनियन और यूनियन-जैसी कक्षाएं (गुमनाम यूनियनों वाले वर्ग प्रकार) को अब एनटीटीपी के रूप में अनुमति दी गई है।
* <!-- US 102 --> फ़्लोटिंग-पॉइंट प्रकार,<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> पॉइंटर्स और संदर्भ और यूनियन और यूनियन-जैसी कक्षाएं (गुमनाम यूनियनों वाले वर्ग प्रकार) को अब एनटीटीपी के रूप में अनुमति दी गई है।
* <!-- CA038 --> फ़ंक्शन पहचान में अब अनुगामी आवश्यकताएं-खंड (P1971) भी शामिल हैं
* <!-- CA038 -->फ़ंक्शन पहचान में अब अनुगामी आवश्यकताएं-खंड (P1971) भी सम्मिलित हैं
* <!-- CA378, US095, CA110 --> प्रतिबंधित गैर-टेम्प्लेट फ़ंक्शन हटा दिए गए हैं
* <!-- CA378, US095, CA110 --> प्रतिबंधित गैर-टेम्प्लेट फ़ंक्शन हटा दिए गए हैं
* <!-- P1855 --> <code>&lt;compare&gt;</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>
* <!-- P1855 --> <code>&lt;compare&gt;</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>

Revision as of 12:09, 28 February 2023

C++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 के अन्तर्गत enums[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 (UTF-8 समर्थन के लिए)।[56] और explicit सी ++ 20 के बाद से अभिव्यक्ति ले सकता है।[57] के अधिकांश उपयोग volatile कीवर्ड बहिष्कृत कर दिया गया है।[58]

खोजशब्दों के अलावा, नए सहित विशेष अर्थ वाले पहचानकर्ता भी हैं import और module. सी ++ 20 में नई विशेषताएँ: [[likely]], [[unlikely]], और [[no_unique_address]][59]


हटा दिया गया और हटा दिया गया

हटाई गई विशेषताएं:[60]

  • सी (प्रोग्रामिंग भाषा)-व्युत्पन्न हेडर <ccomplex>, <ciso646>, <cstdalign>, <cstdbool> और <ctgmath> हटा दिए गए, क्योंकि वे C++ में कोई उद्देश्य पूरा नहीं करते। (इसी <*.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]


विधि विशिष्टताओं के रूप में प्रकाशित

  • समानता टीएस v2[62] (टास्क ब्लॉक सहित[63])
  • प्रतिबिंब टीएस v1[64]
  • नेटवर्किंग टीएस v1[65]


== बाद के मानक == के लिए स्थगित

  • ठेके – एक नए प्रस्ताव पर काम करने के लिए एक नया अध्ययन समूह (SG21) बनाया गया है[66]
  • प्रतिबिंब[67][68]
  • मेटाक्लास[69]
  • निष्पादक[70]
  • नेटवर्किंग एक्सटेंशन,[71][72] async, बुनियादी I/O सेवाओं, टाइमर, बफ़र्स और बफर-ओरिएंटेड स्ट्रीम, सॉकेट्स और इंटरनेट प्रोटोकॉल (निष्पादकों द्वारा अवरुद्ध) सहित
  • गुण[73]
  • विस्तारित वायदा[74]


संकलक समर्थन

पूर्ण समर्थन[75]

  • Microsoft Visual Studio#2019 इसके माध्यम से सभी C++20 सुविधाओं का समर्थन करता है /std:c++latest विकल्प, संस्करण 16.10.0 के अनुसार।[76] एक विकल्प /std:c++20 C++20 मोड को सक्षम करने के लिए संस्करण 16.11.0 में जोड़ा गया है।[77][78] प्रोजेक्ट गुण → कॉन्फ़िगरेशन गुण → सी/सी ++ → भाषा → सी ++ भाषा मानक।

माइक्रोसॉफ्ट का कंपाइलर सिर्फ विंडोज, लिनक्स (और जैसे एंड्रॉइड और आईओएस) का समर्थन नहीं करता है, जबकि इसके लिए लिनक्स डेवलपमेंट एक्सटेंशन के लिए विज़ुअल सी ++ की आवश्यकता होती है।[79] आंशिक

  • बजना में आंशिक C++20 समर्थन है जिसे विकल्प के साथ सक्षम किया जा सकता है -std=c++20 (संस्करण 10 और बाद में) या -std=c++2a (संस्करण 9 और पूर्व)।[80]
  • एडिसन डिजाइन समूह ने संस्करण 5.0 में C++20 सुविधाओं को लागू करना शुरू किया और संस्करण 6.1 के रूप में अधिकांश C++20 कोर भाषा सुविधाओं का समर्थन करता है।[81]
  • GNU संकलक संग्रह ने 2017 में आंशिक, प्रयोगात्मक C++20 समर्थन जोड़ा[82] विकल्प के माध्यम से संस्करण 8 में -std=c++2a. क्लैंग की तरह, जीसीसी ने इस विकल्प को -std=c++20 संस्करण 10 में। इसमें प्रायोगिक C++20 समर्थन के अलावा GNU एक्सटेंशन को सक्षम करने का विकल्प भी है, -std=gnu++20.[83]


इतिहास

जुलाई 2017 (टोरंटो) में C++20 वर्किंग ड्राफ्ट में लागू किए गए परिवर्तनों में सम्मिलित हैं:[84]

  • अवधारणाएँ (C++) (जिसने इसे मानक में बनाया वह एक कट-डाउन संस्करण है; इसे कॉन्सेप्ट लाइट के रूप में भी वर्णित किया गया है[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]

  • अनुबंध (C++20#बाद के मानक के लिए स्थगित)[90]
  • फीचर टेस्ट मैक्रोज़
  • वस्तु अभ्यावेदन की बिट-कास्टिंग, से कम वाचालता के साथ memcpy() और कंपाइलर इंटर्नल्स का फायदा उठाने की अधिक क्षमता
  • सशर्त explicit, स्पष्ट संशोधक को बूलियन अभिव्यक्ति पर आकस्मिक होने की अनुमति देता है
  • constexpr आभासी कार्य करता है

नवंबर 2018 (सैन डिएगो) में गिरावट की बैठक में सी ++ 20 वर्किंग ड्राफ्ट में लागू किए गए परिवर्तनों में सम्मिलित हैं:[91]

  • पर्वतमाला (एक श्रेणी प्रस्ताव)
  • अवधारणा संक्षिप्त वाक्य रचना
  • constexpr union, try और catch, dynamic_cast, typeid और std::pointer_traits.
  • विभिन्न constexpr लाइब्रेरी बिट्स
  • नए का उपयोग कर तत्काल कार्य करता है consteval कीवर्ड
  • हस्ताक्षरित पूर्णांक अब दो के पूरक का उपयोग करके दर्शाए जाने के लिए परिभाषित किए गए हैं (हस्ताक्षरित पूर्णांक अतिप्रवाह अपरिभाषित व्यवहार रहता है)
  • अनुबंध सुविधा का परिशोधन (अनुबंध शर्तों में अभिगम नियंत्रण)[92] (सी ++ 20 की सूची देखें # बाद के मानक के लिए स्थगित)
  • एक संशोधित स्मृति मॉडल
  • डिफॉल्ट इनिशियलाइज़ेशन के साथ स्मार्ट पॉइंटर क्रिएशन

फरवरी 2019 (कोना) में शीतकालीन बैठक में C++20 वर्किंग ड्राफ्ट में लागू किए गए परिवर्तनों में सम्मिलित हैं:[93][94][95]

  • कोरआउटिन
  • मॉड्यूलर प्रोग्रामिंग
  • संरचित बाइंडिंग में विभिन्न सुधार (लैम्ब्डा कैप्चर के साथ सहभागिता, static और thread_local भंडारण अवधि)

जुलाई 2019 (कोलोन) में ग्रीष्मकालीन बैठक में C++20 वर्किंग ड्राफ्ट में लागू किए गए परिवर्तनों में सम्मिलित हैं:[96][97][98][99]

  • अनुबंध हटा दिए गए थे (सी ++ 20 की सूची देखें # बाद के मानक के लिए स्थगित)[100]
  • सबस्क्रिप्ट एक्सप्रेशंस में कॉमा ऑपरेटर का उपयोग बहिष्कृत कर दिया गया है[61]
  • constexpr अतिरिक्त (तुच्छ डिफ़ॉल्ट प्रारंभिकरण,[101] अमूल्यांकित इनलाइन-असेंबली[102])
  • दायरे का उपयोग करना enums[36]
  • स्पेसशिप ऑपरेटर में विभिन्न परिवर्तन[103][104]
  • डॉ: मॉड्यूल में मामूली बदलाव[105]
  • constinit कीवर्ड
  • अवधारणाओं में परिवर्तन (निकालना -> Type वापसी-प्रकार-आवश्यकताएं[106])
  • (के सबसे) volatile बहिष्कृत किया गया है[58]
  • डॉ: [[nodiscard]] निर्माणकर्ताओं पर प्रभाव[107]
  • नई मानक पुस्तकालय अवधारणाएँ PascalCase का उपयोग नहीं करेंगी (बल्कि 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] छोटे CPUs पर C++ को लागू करने योग्य न बनाएं[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] यह वर्ग-प्रकार NTTP में सरणी सदस्यों के लिए भी अनुमति देता है।
  • फ़्लोटिंग-पॉइंट प्रकार,[133] पॉइंटर्स और संदर्भ और यूनियन और यूनियन-जैसी कक्षाएं (गुमनाम यूनियनों वाले वर्ग प्रकार) को अब एनटीटीपी के रूप में अनुमति दी गई है।
  • फ़ंक्शन पहचान में अब अनुगामी आवश्यकताएं-खंड (P1971) भी सम्मिलित हैं
  • प्रतिबंधित गैर-टेम्प्लेट फ़ंक्शन हटा दिए गए हैं
  • <compare> अब फ्रीस्टैंडिंग कार्यान्वयन में उपलब्ध है[134]
  • std::spans typedef से बदल दिया गया था index_type को size_type बाकी मानक पुस्तकालय के अनुरूप होना[135]
  • कोलोन बैठक के परिणामस्वरूप अवधारणाओं के नामकरण का पालन करने के लिए संकल्पना लक्षणों का नाम बदल दिया गया है
  • श्रेणियों में कई सुधार और परिवर्धन (P1456R1: मूव-ओनली व्यूज,[136] P1391R4: के लिए रेंज कंस्ट्रक्टर std::string_view (पात्रों की इटरेटर-जोड़ी से निर्माता),[137] P1394R4: के लिए रेंज कंस्ट्रक्टर std::span<ref>,[138] P1870R1: अग्रेषण-श्रेणी<T> बहुत सूक्ष्म है[139])
  • के लिए आरंभीकरण std::atomic<T> इसे डिफ़ॉल्ट और सूची आरंभीकरण के साथ काम करने के लिए बदल दिया गया है,[140] std::latch और std::barrier अब नए सदस्य फ़ंक्शन के माध्यम से कार्यान्वयन द्वारा समर्थित थ्रेड्स की अधिकतम संख्या की रिपोर्ट कर सकते हैं max()
  • std::weak_equality और std::strong_equality उपयोग में न होने के कारण इन्हें हटा दिया गया है
  • में एल्गोरिदम <numeric> बनाया गया है constexpr
  • C++20 के नए या बदले हुए फीचर के लिए मिसिंग फीचर-टेस्ट मैक्रोज़ जोड़े गए हैं[141]


संदर्भ

  1. "The Standard". isocpp.org. Archived from the original on 19 September 2020. Retrieved 7 September 2020.
  2. Sutter, Herb (2019-10-01). "P1000R3: C++ IS schedule" (PDF). Archived (PDF) from the original on 2019-11-14. Retrieved 2020-02-13.
  3. 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.
  4. "Current Status". isocpp.org. Archived from the original on 8 September 2020. Retrieved 7 September 2020.
  5. "C++20 Approved -- Herb Sutter". isocpp.org. Archived from the original on 11 September 2020. Retrieved 8 September 2020.
  6. "ISO/IEC 14882:2020". Archived from the original on 2020-12-16. Retrieved 2020-12-16.
  7. "Why does the C++ standard ship every three years?". 13 July 2019. Archived from the original on 13 July 2019. Retrieved 19 July 2019.
  8. "P0592R0: To boldly suggest an overall plan for C++20". Archived from the original on 2017-03-08. Retrieved 2017-05-06.
  9. "P0606R0: Concepts Are Ready" (PDF). Archived (PDF) from the original on 2017-03-28. Retrieved 2017-05-06.
  10. "P1141R1 - Yet another approach for constrained declarations". Archived from the original on 2018-11-11. Retrieved 2018-11-11.
  11. "N4720: Working Draft, Extensions to C++ for Modules" (PDF). Archived (PDF) from the original on 2019-04-30. Retrieved 2019-04-30.
  12. Tim Shen; Richard Smith. "Designated Initialization Wording". Archived from the original on 2017-10-15. Retrieved 2017-07-16.
  13. Thomas Köppe. "Allow lambda capture [=, this]". Archived from the original on 2019-02-09. Retrieved 2017-07-16.
  14. "Familiar template syntax for generic lambdas". Archived from the original on 2018-11-21. Retrieved 2017-07-16.
  15. "Range-based for statements with initializer". Archived from the original on 2017-04-06. Retrieved 2019-10-30.
  16. 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.
  17. "Wording for lambdas in unevaluated contexts" (PDF). Archived (PDF) from the original on 2017-12-12. Retrieved 2017-12-11.
  18. "Default constructible and assignable stateless lambdas" (PDF). Archived (PDF) from the original on 2017-12-12. Retrieved 2017-12-11.
  19. "Pack expansion in lambda init-capture". www.open-std.org. Archived from the original on 2020-02-14. Retrieved 2017-12-11.
  20. "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.
  21. Nina Ranns; Daveed Vandevoorde. "Down with typename!". Archived from the original on 2018-04-22. Retrieved 2019-05-18.
  22. "Language support for empty objects". Archived from the original on 2018-04-17. Retrieved 2019-08-04.
  23. "Proposed wording for likely and unlikely attributes (Revision 5)". Archived from the original on 2018-05-13. Retrieved 2019-05-18.
  24. "explicit(bool)". www.open-std.org. Archived from the original on 2018-07-20. Retrieved 2018-11-13.
  25. "Allowing Virtual Function Calls in Constant Expressions". www.open-std.org. Archived from the original on 2018-06-11. Retrieved 2019-03-11.
  26. "P1330R0 - Changing the active member of a union inside constexpr". Archived from the original on 2019-07-26. Retrieved 2019-07-26.
  27. "P1002R0 - Try-catch blocks in constexpr functions" (PDF). Archived (PDF) from the original on 2018-11-11. Retrieved 2018-11-11.
  28. "P1327R0 - Allowing dynamic_cast, polymorphic typeid in Constant Expressions". Archived from the original on 2019-07-26. Retrieved 2019-07-26.
  29. "P1006R1 - Constexpr in std::pointer_traits" (PDF). Archived (PDF) from the original on 2018-11-11. Retrieved 2018-11-11.
  30. "P1073R2 - Immediate functions". Archived from the original on 2018-10-26. Retrieved 2018-11-11.
  31. "P1236R0: Alternative Wording for P0907R4 Signed Integers are Two's Complement". Archived from the original on 2018-11-11. Retrieved 2018-11-11.
  32. "P0668R4: Revising the C++ memory model". Archived from the original on 2018-11-11. Retrieved 2018-11-11.
  33. "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.
  34. "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.
  35. "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. 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. 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.
  38. "P0896R3" (PDF). Archived (PDF) from the original on 2018-11-11. Retrieved 2018-11-11.
  39. "Extending make_shared to Support Arrays". Archived from the original on 2017-09-06. Retrieved 2020-02-12.
  40. 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.
  41. "Utility to convert a pointer to a raw pointer". Archived from the original on 2018-02-20. Retrieved 2020-02-12.
  42. 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.
  43. 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.
  44. 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.
  45. Alan Talbot. "<version>". Archived from the original on 2019-05-18. Retrieved 2019-05-18.
  46. "Bit-casting object representations". www.open-std.org. Archived from the original on 2018-08-18. Retrieved 2018-11-10.
  47. "Integrating feature-test macros into the C++ WD". www.open-std.org. Archived from the original on 2018-07-20. Retrieved 2018-11-10.
  48. "P1032R1 - Misc constexpr bits". Archived from the original on 2018-10-26. Retrieved 2018-11-11.
  49. "Smart pointer creation with default initialization". Archived from the original on 2019-01-26. Retrieved 2020-02-12.
  50. 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. 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.
  52. "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.
  53. "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.
  54. "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.
  55. Tomasz Kamiński (2017-11-09). "Simplified partial function application". Archived from the original on 2020-09-28. Retrieved 2020-11-08.
  56. "C++ keywords - cppreference.com". en.cppreference.com. Archived from the original on 2012-03-19. Retrieved 2019-08-04.
  57. "explicit specifier - cppreference.com". en.cppreference.com. Archived from the original on 2012-02-21. Retrieved 2019-08-04.
  58. 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.
  59. "attribute specifier sequence(since C++11) - cppreference.com". en.cppreference.com. Archived from the original on 2012-07-05. Retrieved 2019-08-04.
  60. "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. 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.
  62. "C++ Extensions for Parallelism Version 2". Archived (PDF) from the original on 2022-09-21. Retrieved 2019-07-09.
  63. "Task Blocks". Archived from the original on 2017-09-19. Retrieved 2017-07-23.
  64. "C++ Extensions for Reflection". Archived (PDF) from the original on 2022-09-21. Retrieved 2019-07-09.
  65. "C++ Extensions for Networking". Archived (PDF) from the original on 2022-09-21. Retrieved 2019-07-09.
  66. 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.
  67. "Reflections on the reflection proposals - Meeting C++". meetingcpp.com (in English). Archived from the original on 2017-06-23. Retrieved 2017-06-30.
  68. "Static reflection". www.open-std.org. Archived from the original on 2020-02-22. Retrieved 2018-11-10.
  69. Herb Sutter. "मेटाक्लासेस" (PDF). Archived (PDF) from the original on 2020-11-11. Retrieved 2017-07-23.
  70. "A Unified Executors Proposal for C++". www.open-std.org. Archived from the original on 2020-02-20. Retrieved 2019-02-24.
  71. "N4771: Working Draft, C++ Extensions for Networking" (PDF). Archived (PDF) from the original on 2020-04-19. Retrieved 2019-03-23.
  72. "ISO/IEC TS 19216:2018 Programming Languages -- C++ Extensions for Networking". Archived from the original on 2019-01-15. Retrieved 2018-12-17.
  73. "A General Property Customization Mechanism". www.open-std.org. Archived from the original on 2020-01-19. Retrieved 2019-02-24.
  74. "A Unified Futures Proposal for C++". Archived from the original on 2022-09-21. Retrieved 2019-07-08.
  75. "C++ compiler support - cppreference.com". en.cppreference.com. Archived from the original on 2022-08-08. Retrieved 2022-08-12.
  76. 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.
  77. "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.
  78. Visual Studio documentation for Microsoft C++, Microsoft Docs, 2022-04-19, archived from the original on 2022-04-19, retrieved 2022-04-19
  79. "Visual Studio 2019 Compatibility". docs.microsoft.com (in English). Archived from the original on 2020-06-03. Retrieved 2022-08-12.
  80. "Clang - C++ Programming Language Status". clang.llvm.org. Archived from the original on 2013-07-04. Retrieved 2022-04-19.
  81. "C++ compiler support - cppreference.com". en.cppreference.com. Archived from the original on 2020-10-03. Retrieved 2020-10-10.
  82. "Andrew Sutton - [PATCH] Add -std=c++2a". gcc.gnu.org. Archived from the original on 2021-03-01. Retrieved 2022-04-19.
  83. "C++ Standards Support in GCC - GNU Project". gcc.gnu.org. Archived from the original on 2022-04-20. Retrieved 2022-04-19.
  84. Herb Sutter. "Trip report: Summer ISO C++ standards meeting (Toronto)". Archived from the original on 2017-08-06. Retrieved 2017-07-16.
  85. 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.
  86. Herb Sutter. "Trip report: Fall ISO C++ standards meeting (Albuquerque)". Archived from the original on 2019-02-13. Retrieved 2017-12-04.
  87. 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.
  88. Botond Ballo. "Trip Report: C++ Standards Meeting in Jacksonville, March 2018". Archived from the original on 2019-05-18. Retrieved 2019-05-18.
  89. Herb Sutter. "Trip report: Summer ISO C++ standards meeting (Rapperswil)". Archived from the original on 2020-05-23. Retrieved 2018-11-10.
  90. "Support for contract based programming in C++". www.open-std.org. Archived from the original on 2020-01-15. Retrieved 2018-11-10.
  91. fall meeting in November 2018
  92. "P1289R0 - Access control in contract conditions" (PDF). Archived (PDF) from the original on 2018-11-11. Retrieved 2018-11-11.
  93. winter meeting in February 2019
  94. "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.
  95. "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.
  96. "summer meeting in July 2019" (PDF).
  97. "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.
  98. Botond Ballo. "Trip Report: C++ Standards Meeting in Cologne, July 2019". Archived from the original on 2020-02-26. Retrieved 2019-08-05.
  99. Sutter, Herb. "Trip report: Summer ISO C++ standards meeting (Cologne)". Archived from the original on 2020-04-17. Retrieved 2019-07-21.
  100. Josuttis, Nicolai. "P1823R0: Remove Contracts from C++20" (PDF). Archived (PDF) from the original on 2020-08-13. Retrieved 2019-08-20.
  101. "Permitting trivial default initialization in constexpr contexts" (PDF). Archived (PDF) from the original on 2020-10-19. Retrieved 2019-07-20.
  102. "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.
  103. "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.
  104. "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.
  105. "P1766R1: Mitigating minor modules maladies". www.open-std.org. 2019-07-20. Archived from the original on 2019-08-20. Retrieved 2019-07-20.
  106. "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.
  107. "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.
  108. "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.
  109. "P0645R10: Text Formatting". www.open-std.org. 2019-07-20. Archived from the original on 2019-08-20. Retrieved 2019-07-20.
  110. "std::format in C++20". www.zverovich.net. 2019-07-23. Archived from the original on 2019-07-23. Retrieved 2019-09-15.
  111. "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.
  112. "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.
  113. "P1965R2: constexpr INVOKE". www.open-std.org. 2019-07-20. Archived from the original on 2019-08-20. Retrieved 2019-07-20.
  114. "P0631R8: Math Constants" (PDF). www.open-std.org. 2019-07-20. Archived (PDF) from the original on 2019-08-20. Retrieved 2019-07-20.
  115. "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.
  116. "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.
  117. "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.
  118. "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.
  119. "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.
  120. "P0514R4: Efficient concurrent waiting for C++20" (PDF). Archived (PDF) from the original on 2018-08-18. Retrieved 2019-07-20.
  121. "P0666R2: Revised Latches and Barriers for C++20" (PDF). Archived (PDF) from the original on 2018-08-18. Retrieved 2019-07-20.
  122. "P0995R1: Improving atomic_flag". Archived from the original on 2019-07-20. Retrieved 2019-07-20.
  123. "P1285R0: Don't Make C++ Unimplementable On Small CPUs". Archived from the original on 2019-07-15. Retrieved 2019-07-20.
  124. "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.
  125. "P0980R1: Making std::string constexpr" (PDF). Archived (PDF) from the original on 2020-09-29. Retrieved 2020-07-30.
  126. "P1004R2: Making std::vector constexpr" (PDF). Archived (PDF) from the original on 2020-09-28. Retrieved 2020-07-30.
  127. "P0660R10: Stop Token and Joining Thread" (PDF). Archived (PDF) from the original on 2019-08-20. Retrieved 2019-08-20.
  128. fall meeting in November 2019
  129. "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.
  130. 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.
  131. 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.
  132. "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.
  133. "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.
  134. "P1855R=: Make <compare> freestanding". www.open-std.org. 2019-10-05. Archived from the original on 2019-11-09. Retrieved 2019-11-09.
  135. "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.
  136. "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.
  137. "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.
  138. "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.
  139. "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.
  140. "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.
  141. "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.


बाहरी संबंध