C++ 20 – הבדלי גרסאות

מתוך ויקיפדיה, האנציקלופדיה החופשית
תוכן שנמחק תוכן שנוסף
ערך יתום
שורה 5: שורה 5:
השינויים שהוחלו על טיוטת העבודה של C++ 20 שגובשה ביולי 2017 בטורונטו כוללים:<ref>
השינויים שהוחלו על טיוטת העבודה של C++ 20 שגובשה ביולי 2017 בטורונטו כוללים:<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)|last=[[Herb Sutter]]}}</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)|last=[[Herb Sutter]]}}</ref>

* concepts (מה שהפך אותו לתקן הוא גרסה מקוצרת; מתוארת גם כ"Concepts Lite"<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|last=Andrew Sutton|last2=Bjarne Stroustrup|accessdate=2021-01-13}}</ref>)
* concepts (מה שהפך אותו לתקן הוא גרסה מקוצרת; מתוארת גם כ"Concepts Lite"<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|last=Andrew Sutton|last2=Bjarne Stroustrup|accessdate=2021-01-13}}</ref>)
* designated initializers
* designated initializers
שורה 14: שורה 13:
השינויים שהוחלו על טיוטת העבודה C++ 20 בישיבת הסתיו בנובמבר 2017 באלבוקרקי כוללים:<ref>
השינויים שהוחלו על טיוטת העבודה C++ 20 בישיבת הסתיו בנובמבר 2017 באלבוקרקי כוללים:<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)|last=[[Herb Sutter]]}}</ref><ref>{{Cite web|last=Smith|first=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}}</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)|last=[[Herb Sutter]]}}</ref><ref>{{Cite web|last=Smith|first=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}}</ref>
* השוואות three-way עם ה-"spaceship operator":{{כ}} <code>operator &#x3C; = &#x3E;</code>

* השוואות three-way עם ה-"spaceship operator":{{כ}} <code>operator &#x3C; = &#x3E;</code>
* אתחול של משתנה נוסף בטווח של הצהרת <code>for</code>
* אתחול של משתנה נוסף בטווח של הצהרת <code>for</code>
* למבדות בהקשרים לא משוערכים
* למבדות בהקשרים לא משוערכים
* למבדות דיפולטיות חסרות מצב (stateless)
* למבדות דיפולטיות חסרות מצב (stateless)
* אפשר הרחבות בלמבדה ''init-capture''
* אפשר הרחבות בלמבדה ''init-capture''
* מצביעים חכמים אטומיים, כגון <code>std::atomic<shared_ptr<T>></code> ו- <code>std::atomic<weak_ptr<T>></code>
* מצביעים חכמים אטומיים, כגון <code>std::atomic<shared_ptr<T>></code> ו- <code>std::atomic<weak_ptr<T>></code>
* <code>std::to_address</code> להמיר pointer ל raw pointer
* <code>std::to_address</code> להמיר pointer ל raw pointer


== הערות שוליים ==
== הערות שוליים ==
{{הערות שוליים}}
{{הערות שוליים}}
{{ערך יתום}}
[[קטגוריה:C++]]
[[קטגוריה:C++]]
[[קטגוריה:תקני ISO]]
[[קטגוריה:תקני ISO]]

גרסה מ־15:50, 7 במרץ 2021

C++ 20 הוא שמו של תקן ISO/IEC עבור שפת התכנות ++C (תקן עוקב ל C++ 17).[1] התקן נחתם טכנית [2] ידי WG21 בפגישה בפראג בפברואר 2020, [3] אושר ב-4 בספטמבר 2020,[4][5] ופורסם על ידי ISO בדצמבר 2020. [6]

היסטוריה


שגיאות פרמטריות בתבנית:להשלים

פרמטרי חובה [ נושא ] חסרים

השינויים שהוחלו על טיוטת העבודה של C++ 20 שגובשה ביולי 2017 בטורונטו כוללים:[7]

  • concepts (מה שהפך אותו לתקן הוא גרסה מקוצרת; מתוארת גם כ"Concepts Lite"[8])
  • designated initializers
  • [=, this] כ- lambda capture
  • רשימות פרמטרים של על lambda
  • std::make_shared ו- std::allocate_shared למערכים

השינויים שהוחלו על טיוטת העבודה C++ 20 בישיבת הסתיו בנובמבר 2017 באלבוקרקי כוללים:[9][10]

  • השוואות three-way עם ה-"spaceship operator":‏ operator < = >
  • אתחול של משתנה נוסף בטווח של הצהרת for
  • למבדות בהקשרים לא משוערכים
  • למבדות דיפולטיות חסרות מצב (stateless)
  • אפשר הרחבות בלמבדה init-capture
  • מצביעים חכמים אטומיים, כגון std::atomic<shared_ptr<T>> ו- std::atomic<weak_ptr<T>>
  • std::to_address להמיר pointer ל raw pointer

הערות שוליים

  1. ^ "The Standard". isocpp.org. נבדק ב-7 בספטמבר 2020. {{cite web}}: (עזרה)
  2. ^ Sutter, Herb (2019-10-01). "P1000R3: C++ IS schedule" (PDF). נבדק ב-2020-02-13.
  3. ^ Dusíková, Hana (2019-11-06). "N4817: 2020 Prague Meeting Invitation and Information" (PDF). נבדק ב-2020-02-13.
  4. ^ "Current Status". isocpp.org. נבדק ב-7 בספטמבר 2020. {{cite web}}: (עזרה)
  5. ^ "C++20 Approved -- Herb Sutter". isocpp.org. נבדק ב-8 בספטמבר 2020. {{cite web}}: (עזרה)
  6. ^ "ISO/IEC 14882:2020".
  7. ^ Herb Sutter. "Trip report: Summer ISO C++ standards meeting (Toronto)".
  8. ^ Andrew Sutton; Bjarne Stroustrup (2013-02-24). "Concepts Lite: Constraining Templates with Predicates". isocpp.org. isocpp.org. נבדק ב-2021-01-13.
  9. ^ Herb Sutter. "Trip report: Fall ISO C++ standards meeting (Albuquerque)".
  10. ^ Smith, Richard; Perchik, Dawn; Köppe, Thomas. "N4714 Editors' Report -- Programming Languages -- C++". C++ standards drafts. GitHub. נבדק ב-27 בדצמבר 2018. {{cite web}}: (עזרה)