C++ 20

גרסת 2020 של תקן שפת התכנות C++

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

C++ 20
שנה 2020 עריכת הנתון בוויקינתונים
האתר הרשמי
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית OOjs UI icon info big.svg

היסטוריהעריכה

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

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

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

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