C++20

C++20 هي نسخة من معيار ISO / IEC 14882 للغة البرمجة C++ . حلت C++20 محل النسخة السابقة من معيار C++، المسماة C++17 ، والتي حلت محلها لاحقًا C++23 . [ 1 ] تم وضع الصيغة النهائية للمعيار [ 2 ] من قبل فريق العمل WG21 في اجتماع براغ في فبراير 2020، [ 3 ] وأُعلن عن مسودته النهائية في مارس 2020، [ 4 ] وتمت الموافقة عليه في 4 سبتمبر 2020، [ 5 ] [ 6 ] ونُشر تحت اسم ISO/IEC 14882:2020 في ديسمبر 2020. [ 7 ]

سمات

يُضيف C++20 ميزات رئيسية جديدة أكثر من C++14 أو C++17 . [ 8 ] تشمل التغييرات التي تم قبولها في C++20 ما يلي: [ 9 ]

لغة

مكتبة

  • النطاقات (مقترح النطاقات الواحد) [ 39 ]
  • std::make_sharedوبالنسبة std::allocate_sharedللمصفوفات [ 40 ]
  • المؤشرات الذكية الذرية (مثل std::atomic<shared_ptr<T>>و std::atomic<weak_ptr<T>>) [ 41 ]
  • std::to_addressلتحويل مؤشر إلى مؤشر خام [ 42 ]
  • إضافات التقويم والمنطقة الزمنية إلى <chrono>[ 43 ]
  • std::span، مما يوفر عرضًا لمصفوفة متجاورة (مماثلة للتسلسل المشار إليه std::string_viewولكن يمكنها تغييره) [ 44 ]span
  • std::eraseو std::erase_if، تبسيط عملية مسح العناصر لمعظم الحاويات القياسية [ 45 ]
  • <version>رأس [ 46 ] ، توفير وحدات ماكرو لاختبار الميزات [ 47 ]
  • std::bit_cast<>لتحويل أنواع تمثيلات الكائنات، مع قدر أقل من الإسهاب memcpy()وقدرة أكبر على استغلال التفاصيل الداخلية للمترجم [ 48 ]
  • constexprأجزاء مكتبة متنوعة [ 49 ]
  • إنشاء مؤشر ذكي مع تهيئة افتراضية [ 50 ]
  • contains()- طريقة للحاويات الترابطية [ 51 ]
  • التحقق من البادئات واللواحق للسلاسل النصية [ 52 ]
  • عمليات البت، مثل العد الصفري/الواحد البادئ/اللاحق، [ 53 ] وعمليات log2 [ 54 ] [ 55 ] [ 56 ]
  • std::bind_front[ 57 ]
  • std::atomic::waitتمت إضافة ، std::atomic::notify_one، ، مما std::atomic::notify_allأعطى المكتبة القياسية قدرات تشبه futex [ 58 ]

الكلمات المفتاحية الجديدة والمعدلة

تمت إضافة ثماني كلمات مفتاحية جديدة (بالإضافة إلى عامل "المركبة الفضائية" الجديد ) ، operator<=>مثل concept[ 38 ] ، (بالإضافة إلى إعادة تقديم الكلمة المفتاحية)، و (لدعم UTF-8 )؛ من بين الكلمات الثماني الجديدة، هذه الثلاث ، و ، و مخصصة فقط لدعم الروتينات الفرعية الجديدة [ 59 ] (بالإضافة إلى ذلك، تم تغيير ست كلمات مفتاحية موجودة مسبقًا أو إضافة معانٍ جديدة لها)؛ يمكن أن تأخذ تعبيرًا منذ C++20. [ 60 ] تم إهمال معظم استخدامات الكلمة المفتاحية. [ 61 ]constinitconstevalrequiresexportchar8_tco_awaitco_returnco_yieldexplicitvolatile

بالإضافة إلى الكلمات الرئيسية، هناك معرّفات ذات معنى خاص (تُعتبر كلمات رئيسية في سياقات معينة)، بما في ذلك "جديد" importو module".

السمات الجديدة في C++20: ، و [ 62 ][[likely]][[unlikely]][[no_unique_address]]

تمت إزالته وإهماله

الميزات التي تمت إزالتها: [ 63 ]

  • تمت إزالة ملفات الرأس المشتقة من لغة C<ccomplex> ، حيث لا فائدة منها في لغة C++. (تبقى ملفات الرأس المقابلة ، من أجل التوافق مع لغة C) <ciso646>.<cstdalign><cstdbool><ctgmath><*.h>
  • throwتم حذف استخدام العبارات.
  • تمت إزالة بعض ميزات المكتبة التي تم إيقاف استخدامها سابقًا، بما في ذلك std::uncaught_exception، std::raw_storage_iterator، std::is_literal_type، std::is_literal_type_v، std::result_ofو std::result_of_t.

الميزات المهملة:

  • تم إهمال استخدام عامل الفاصلة في التعبيرات الفرعية [ 64 ]
  • (معظم) volatileتم إهماله [ 61 ]

نُشرت كمواصفات فنية

  • التوازي TS الإصدار 2 [ 65 ] (بما في ذلك كتل المهام)
  • Reflection TS v1 [ 66 ]
  • Networking TS v1 [ 67 ]

تم تأجيله إلى معيار لاحق

  • العقود تم تشكيل مجموعة دراسة جديدة (SG21) للعمل على اقتراح جديد [ 68 ] 
  • التأمل [ 69 ] [ 70 ]
  • الفئات الوصفية [ 71 ]
  • المنفذون [ 72 ]
  • امتدادات الشبكات، [ 73 ] [ 74 ] بما في ذلك غير المتزامن، وخدمات الإدخال/الإخراج الأساسية، والمؤقتات، والمخازن المؤقتة، وتدفقات البيانات الموجهة نحو المخازن المؤقتة، والمآخذ، وبروتوكولات الإنترنت (التي يتم حظرها بواسطة المنفذين).
  • الخصائص [ 75 ]
  • العقود الآجلة الممتدة [ 76 ]

دعم المُترجم

دعم كامل

توفر المترجمات التالية دعمًا كاملاً: [ 77 ]

  • يدعم Visual Studio 2019/std:c++latest جميع ميزات C++20 من خلال خياره، بدءًا من الإصدار 16.10.0. [ 78 ] تمت إضافة خيار /std:c++20لتمكين وضع C++20 في الإصدار 16.11.0. [ 79 ] [ 80 ]

لا يدعم مُصرّف مايكروسوفت نظام التشغيل ويندوز فحسب، بل يدعم أيضًا أنظمة لينكس وأندرويد وآي أو إس. ومع ذلك، يتطلب تطوير البرامج على نظام لينكس إضافة "Visual C++ for Linux Development". [ 81 ]

جزئي

  • يدعم Clang جزئيًا لغة C++20، ويمكن تفعيل هذا الدعم باستخدام الخيار -std=c++20(الإصدار 10 والإصدارات الأحدث) أو -std=c++2a(الإصدار 9 والإصدارات الأقدم). [ 82 ]
  • بدأت EDG بتطبيق ميزات C++20 في الإصدار 5.0، ومنذ الإصدار 6.1 تدعم معظم ميزات لغة C++20 الأساسية. [ 83 ]
  • أضاف مُجمِّع الحزم GCC دعمًا تجريبيًا جزئيًا للغة C++20 في عام 2017 [ 84 ] في الإصدار 8 من خلال الخيار -std=c++2a. ومثل Clang، استبدل GCC هذا الخيار بخيار آخر -std=c++20في الإصدار 10. كما يتضمن خيارًا لتمكين امتدادات GNU بالإضافة إلى دعم C++20 التجريبي -std=gnu++20. [ 85 ]

تاريخ

تشمل التغييرات التي تم تطبيقها على مسودة العمل C++20 في يوليو 2017 (تورنتو) ما يلي: [ 86 ]

  • المفاهيم (ما تم إدراجه في المعيار هو نسخة مختصرة؛ ويوصف أيضًا بأنه "مفاهيم لايت" [ 87 ] )
  • المُهيئات المُخصصة
  • [=, this]كعملية التقاط لامدا
  • قوائم معلمات القوالب في الدوال اللامدا
  • std::make_sharedوبالنسبة std::allocate_sharedللمصفوفات

تشمل التغييرات التي تم تطبيقها على مسودة العمل C++20 في اجتماع الخريف في نوفمبر 2017 (ألبوكيرك) ما يلي: [ 88 ] [ 89 ]

  • مقارنة ثلاثية باستخدام "مشغل المركبة الفضائية"،operator <=>
  • تهيئة متغير إضافي ضمن forعبارة قائمة على النطاق
  • الدوال اللامدا في سياقات غير مُقَيَّمة
  • دوال لامدا عديمة الحالة قابلة للإنشاء والتخصيص بشكل افتراضي
  • السماح بتوسيع الحزم في عملية بدء التقاط لامدا
  • السلاسل النصية كمعلمات للقوالب
  • المؤشرات الذكية الذرية (مثل std::atomic<shared_ptr<T>>و std::atomic<weak_ptr<T>>)
  • std::to_addressلتحويل مؤشر إلى مؤشر خام

تشمل التغييرات التي تم تطبيقها على مسودة العمل C++20 في مارس 2018 (جاكسونفيل) ما يلي: [ 90 ]

  • إزالة الحاجة إلى ذلك typenameفي ظروف معينة
  • سمات قياسية جديدة ، و[[no_unique_address]][[likely]][[unlikely]]
  • إضافات التقويم والمنطقة الزمنية إلى<chrono>
  • std::span، مما يوفر عرضًا لمصفوفة متجاورة (مماثلة للتسلسل المشار إليه std::string_viewولكن يمكنها تغييره)span
  • <version>رأس الصفحة

تشمل التغييرات التي تم تطبيقها على مسودة العمل C++20 في الاجتماع الصيفي في يونيو 2018 (رابرسويل) ما يلي: [ 91 ]

  • العقود ( تم تأجيلها لاحقًا إلى معيار لاحق ؛ تمت إضافتها في C++26 ) [ 92 ]
  • وحدات ماكرو لاختبار الميزات
  • تحويل تمثيلات الكائنات إلى بتات، مع إسهاب أقل memcpy()وقدرة أكبر على استغلال تفاصيل المُصرّف الداخلية
  • مشروط explicit، مما يسمح للمعدِّل الصريح بأن يكون مشروطًا بتعبير منطقي
  • constexpr الدوال الافتراضية

تشمل التغييرات التي تم تطبيقها على مسودة العمل C++20 في اجتماع الخريف في نوفمبر 2018 (سان دييغو) ما يلي: [ 93 ]

تشمل التغييرات التي تم تطبيقها على مسودة العمل C++20 في الاجتماع الشتوي في فبراير 2019 (كونا) ما يلي: [ 95 ] [ 96 ] [ 97 ]

تشمل التغييرات التي تم تطبيقها على مسودة العمل C++20 في الاجتماع الصيفي في يوليو 2019 (كولونيا) ما يلي: [ 98 ] [ 99 ] [ 100 ] [ 101 ]

  • تمت إزالة العقود (انظر قائمة الميزات المؤجلة إلى معيار لاحق ) [ 102 ]
  • تم إهمال استخدام عامل الفاصلة في التعبيرات الفرعية [ 64 ]
  • constexprإضافات (تهيئة افتراضية بسيطة، [ 103 ] تجميع مضمن غير مُقيَّم [ 104 ] )
  • باستخدام النطاق enums [ 37 ]
  • تغييرات متنوعة على مشغل المركبة الفضائية [ 105 ] [ 106 ]
  • DR: تغييرات طفيفة على الوحدات [ 107 ]
  • constinitالكلمة المفتاحية
  • تغييرات في المفاهيم (إزالة -> Typeمتطلبات نوع الإرجاع [ 108 ] )
  • (معظم) volatileتم إهماله [ 61 ]
  • DR: التأثيرات على المُنشئات [ 109 ][[nodiscard]]
  • لن تستخدم مفاهيم المكتبة القياسية الجديدة PascalCase (بل snake_case ، كما هو الحال في بقية المكتبة القياسية) [ 110 ]
  • تنسيق النص ( std::formatاستنادًا إلى تلك الخاصة بمكتبة {fmt} [ 111 ] [ 112 ]chrono التكامل، [ 113 ] إصلاحات الحالات الشاذة [ 114 ] )
  • عمليات البت [ 53 ]
  • constexprاستدعاء الأدوات المساعدة [ 115 ]
  • الثوابت الرياضية [ 116 ]
  • إضافات الاتساق إلى الذرات ( std::atomic_ref<T>، [ 58 ] std::atomic<std::shared_ptr<T>>[ 117 ] )
  • أضف <=>المعامل إلى المكتبة القياسية [ 118 ]
  • وحدات رأسية للمكتبة القياسية [ 119 ]
  • مرافق التزامن [ 120 ] (مدمجة من: الانتظار الذري الفعال والإشارات، [ 121 ] المزالج والحواجز، [ 122 ] التحسين atomic_flag، [ 123 ] لا تجعل لغة C++ غير قابلة للتنفيذ على وحدات المعالجة المركزية الصغيرة [ 124 ] )
  • std::source_location[ 125 ]
  • constexprالحاويات ( std::string، [ 126 ] std::vector[ 127 ] )
  • std::stop_tokenوربط الخيط ( std::jthread) [ 128 ]

تشمل التغييرات التي تم تطبيقها خلال قرار التعليق على NB في اجتماع الخريف في نوفمبر 2019 (بلفاست) ما يلي: [ 129 ] [ 130 ] [ 131 ] [ 132 ]

  • أنواع الفئات في معلمات القوالب غير النوعية (NTTP): تم إزالة قيد عدم operator==السماح بالتعريفات التي يحددها المستخدم، حيث تم فصل معنى مساواة وسيط القالب عن operator==. [ 133 ] وهذا يسمح أيضًا بأعضاء المصفوفة في NTTP من نوع الفئة.
  • أنواع الفاصلة العائمة، [ 134 ] المؤشرات والمراجع والاتحادات والفئات الشبيهة بالاتحادات (أنواع الفئات التي تحتوي على اتحادات مجهولة) مسموح بها الآن كـ NTTP.
  • تشمل هوية الوظيفة الآن أيضًا عبارات الاستلزام اللاحقة (P1971)
  • تمت إزالة الدوال غير القالبية المقيدة
  • <compare>وهو متوفر الآن في تطبيقات مستقلة [ 135 ]
  • std::spanتم تغيير تعريف النوع s من index_typeإلى size_typeليكون متسقًا مع بقية المكتبة القياسية [ 136 ]
  • تمت إعادة تسمية سمات المفاهيم لتتماشى مع إعادة تسمية المفاهيم نتيجة لاجتماع كولونيا
  • العديد من الإصلاحات والإضافات للنطاقات (P1456R1: طرق العرض للتحريك فقط، [ 137 ] P1391R4: مُنشئ النطاق لـ std::string_view(منشئ من زوج من الأحرف المُكررة)، [ 138 ] P1394R4 : مُنشئ النطاق لـ ، [ 139 ] P1870R1: نطاق التوجيه <T> دقيق للغاية [ 140 ] )std::span<ref>
  • تم تغيير عملية التهيئة std::atomic<T>لتتوافق مع التهيئة الافتراضية وتهيئة القوائم، [ 141 ]std::latch ويمكنها std::barrierالآن الإبلاغ عن الحد الأقصى لعدد الخيوط التي يدعمها التنفيذ من خلال الدالة العضوية الجديدة.max()
  • std::weak_equalityوقد std::strong_equalityتمت إزالتها لأنها لم تعد مستخدمة
  • تم وضع الخوارزميات في<numeric>constexpr
  • تمت إضافة وحدات الماكرو لاختبار الميزات المفقودة للميزات الجديدة أو المتغيرة في C++20 [ 142 ]

مراجع

  1. "المعيار" . isocpp.org . مؤرشف من الأصل في 19 سبتمبر 2020. تم الاطلاع عليه في 7 سبتمبر 2020 .
  2. ساتر، هيرب (1 أكتوبر 2019). "P1000R3: جدول زمني لـ C++ IS" (ملف PDF) . مؤرشف (PDF) من الأصل بتاريخ 14 نوفمبر 2019. تم الاطلاع عليه بتاريخ 13 فبراير 2020 .
  3. دوسيكوفا، هانا (2019-11-06). "N4817: دعوة ومعلومات اجتماع براغ 2020" (ملف PDF) . مؤرشف (PDF) من الأصل بتاريخ 2019-12-29 . تم الاطلاع عليه بتاريخ 2020-02-13 .
  4. "تقرير المحررين N4859 - لغات البرمجة - C++" . مؤرشف من الأصل بتاريخ 2022-12-09 . تم الاطلاع عليه بتاريخ 2023-09-22 .
  5. "الوضع الحالي" . isocpp.org . مؤرشف من الأصل بتاريخ 8 سبتمبر 2020. تم الاطلاع عليه بتاريخ 7 سبتمبر 2020 .
  6. "موافقة C++20 - هيرب ساتر" . isocpp.org . مؤرشف من الأصل بتاريخ 11 سبتمبر 2020. تم الاطلاع عليه بتاريخ 8 سبتمبر 2020 .
  7. "ISO/IEC 14882:2020" . مؤرشف من الأصل بتاريخ 16 ديسمبر 2020. تم الاطلاع عليه بتاريخ 16 ديسمبر 2020 .
  8. "لماذا يُصدر معيار لغة C++ كل ثلاث سنوات؟" . ١٣ يوليو ٢٠١٩. مؤرشف من الأصل في ١٣ يوليو ٢٠١٩. تم الاطلاع عليه في ١٩ يوليو ٢٠١٩ .
  9. "P0592R0: اقتراح خطة شاملة لـ C++20" . مؤرشف من الأصل بتاريخ 2017-03-08 . تم الاطلاع عليه بتاريخ 2017-05-06 .
  10. "P0606R0: المفاهيم جاهزة" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 28-03-2017 . تم الاطلاع عليه بتاريخ 06-05-2017 .
  11. "P1141R1 - نهج آخر للتصريحات المقيدة" . مؤرشف من الأصل بتاريخ 11-11-2018 . تم الاطلاع عليه بتاريخ 11-11-2018 .
  12. "N4720: مسودة عمل، إضافات إلى لغة C++ للوحدات النمطية" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 30 أبريل 2019. تم الاطلاع عليه بتاريخ 30 أبريل 2019 .
  13. تيم شين؛ ريتشارد سميث. "صياغة التهيئة المحددة" . مؤرشف من الأصل بتاريخ 15-10-2017 . تم الاطلاع عليه بتاريخ 16-07-2017 .
  14. توماس كوب. "السماح بالتقاط لامدا [ =, this ] " . مؤرشف من الأصل في 2019-02-09 . تم الاسترجاع في 2017-07-16 .
  15. "صيغة القوالب المألوفة للدوال اللامدا العامة" . مؤرشف من الأصل بتاريخ 21-11-2018 . تم الاطلاع عليه بتاريخ 16-07-2017 .
  16. "عبارات for المستندة إلى النطاق مع مُهيئ" . مؤرشف من الأصل بتاريخ 2017-04-06 . تم الاسترجاع بتاريخ 2019-10-30 .
  17. ١ ٢ ٣ "تقرير رحلة: اجتماع معايير لغة C++ في ألبوكيرك، نوفمبر ٢٠١٧" . ها هو والدو! ٢٠١٧-١١-٢٠. مؤرشف من الأصل في ٢٠١٧-١٢-١١ . تم الاسترجاع في ٢٠١٧-١٢-١١ .
  18. "صياغة الدوال اللامدا في سياقات غير مُقَيَّمة" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 12-12-2017 . تم الاطلاع عليه بتاريخ 11-12-2017 .
  19. "الدوال اللامدا عديمة الحالة القابلة للإنشاء والتخصيص افتراضياً" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 12-12-2017 . تم الاطلاع عليه بتاريخ 11-12-2017 .
  20. "توسيع الحزمة في دالة لامدا init-capture" . www.open-std.org . مؤرشف من الأصل بتاريخ 14 فبراير 2020. تم الاطلاع عليه بتاريخ 11 ديسمبر 2017 .
  21. "أنواع الفئات في معلمات القوالب غير النوعية" (ملف PDF) . www.open-std.org . 2018-06-06. مؤرشف (ملف PDF) من الأصل بتاريخ 2022-02-05 . تم الاطلاع عليه بتاريخ 2022-02-18 .
  22. نينا رانز؛ دافيد فانديفورد. "فليسقط اسم النوع!" . مؤرشف من الأصل بتاريخ 22-04-2018 . تم الاطلاع عليه بتاريخ 18-05-2019 .
  23. "دعم اللغة للكائنات الفارغة" . مؤرشف من الأصل بتاريخ 17-04-2018 . تم الاطلاع عليه بتاريخ 04-08-2019 .
  24. "صياغة مقترحة للسمات المحتملة وغير المحتملة (مراجعة 5)" . مؤرشف من الأصل بتاريخ 13 مايو 2018. تم الاطلاع عليه بتاريخ 18 مايو 2019 .
  25. "explicit(bool)" . www.open-std.org . مؤرشف من الأصل بتاريخ 20 يوليو 2018. تم الاطلاع عليه بتاريخ 13 نوفمبر 2018 .
  26. "السماح باستدعاء الدوال الافتراضية في التعبيرات الثابتة" . www.open-std.org . مؤرشف من الأصل بتاريخ 11-06-2018 . تم الاطلاع عليه بتاريخ 11-03-2019 .
  27. "P1330R0 - تغيير العضو النشط في اتحاد داخل constexpr" . مؤرشف من الأصل بتاريخ 26-07-2019 . تم الاطلاع عليه بتاريخ 26-07-2019 .
  28. "P1002R0 - كتل try-catch في دوال constexpr" (ملف PDF) . مؤرشف (PDF) من الأصل بتاريخ 11-11-2018 . تم الاطلاع عليه بتاريخ 11-11-2018 .
  29. "P1327R0 - السماح بالتحويل الديناميكي، ومعرف النوع متعدد الأشكال في التعبيرات الثابتة" . مؤرشف من الأصل بتاريخ 2019-07-26 . تم الاطلاع عليه بتاريخ 2019-07-26 .
  30. "P1006R1 - Constexpr in std::pointer_traits" (ملف PDF) . مؤرشف (PDF) من الأصل بتاريخ 11-11-2018 . تم الاطلاع عليه بتاريخ 11-11-2018 .
  31. "P1073R2 - الوظائف الفورية" . مؤرشف من الأصل بتاريخ 26-10-2018 . تم الاطلاع عليه بتاريخ 11-11-2018 .
  32. "P1236R0: صياغة بديلة لـ P0907R4 الأعداد الصحيحة الموقعة هي المتمم الثنائي" . مؤرشف من الأصل بتاريخ 11-11-2018 . تم الاطلاع عليه بتاريخ 11-11-2018 .
  33. "P0668R4: مراجعة نموذج ذاكرة C++" . مؤرشف من الأصل بتاريخ 11-11-2018 . تم الاطلاع عليه بتاريخ 11-11-2018 .
  34. "P1091R1: توسيع الروابط المهيكلة لتكون أشبه بتصريحات المتغيرات" . www.open-std.org . مؤرشف من الأصل بتاريخ 26 يناير 2019. تم الاطلاع عليه بتاريخ 24 فبراير 2019 .
  35. "P1091R2: توسيع الروابط المهيكلة لتكون أشبه بتصريحات المتغيرات" . www.open-std.org . مؤرشف من الأصل بتاريخ 26 يناير 2019. تم الاطلاع عليه بتاريخ 24 فبراير 2019 .
  36. "N4649: مسودة عمل، مواصفات فنية لامتدادات C++ للروتينات الفرعية" (ملف PDF) . مؤرشف (PDF) من الأصل بتاريخ 16-05-2017 . تم الاطلاع عليه بتاريخ 06-05-2017 .
  37. 1 2 "P1099R5: استخدام التعداد" . www.open-std.org . 2019-07-20. مؤرشف من الأصل في 2019-08-20 . تم الاسترجاع في 2019-07-20 .
  38. 1 2 "P1143R2: إضافة الكلمة المفتاحية constinit" . www.open-std.org . 2019-07-20. مؤرشف من الأصل في 2019-08-20 . تم الاطلاع عليه في 2019-07-20 .
  39. "P0896R3" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 11-11-2018 . تم الاطلاع عليه بتاريخ 11-11-2018 .
  40. "توسيع وظيفة make_shared لدعم المصفوفات" . مؤرشف من الأصل بتاريخ 2017-09-06 . تم الاطلاع عليه بتاريخ 2020-02-12 .
  41. ميريديث، أليستير؛ ساتر، هيرب. "مراجعة atomic_shared_ptr للغة C++20" . اللجنة الفنية المشتركة 1/اللجنة الفرعية 22/مجموعة العمل 21 - لجنة معايير C++ - ISOCPP . المنظمة الدولية للمعايير . مؤرشف من الأصل في 4 يناير 2018. تم الاطلاع عليه في 27 ديسمبر 2018 .
  42. "أداة لتحويل مؤشر إلى مؤشر خام" . مؤرشف من الأصل بتاريخ 20 فبراير 2018. تم الاطلاع عليه بتاريخ 12 فبراير 2020 .
  43. هوارد إي. هينانت؛ توماش كامينسكي. "توسيع نطاق <chrono> ليشمل التقاويم والمناطق الزمنية" . مؤرشف من الأصل بتاريخ 13 مايو 2018. تم الاطلاع عليه بتاريخ 18 مايو 2019 .
  44. نيل ماكنتوش؛ ستيفان تي. لافافيج. "span: طرق عرض آمنة للحدود لتسلسلات الكائنات" . مؤرشف من الأصل بتاريخ 18-05-2019 . تم الاسترجاع بتاريخ 18-05-2019 .
  45. أليستير ميريديث؛ ستيفان ت. لافافيج (4 أكتوبر 2018). "اعتماد محو الحاويات المتسق من أساسيات المكتبة 2 للغة C++20" . مؤرشف من الأصل في 8 مارس 2021. تم الاطلاع عليه في 14 ديسمبر 2020 .
  46. آلان تالبوت. "<النسخة>" . مؤرشف من الأصل بتاريخ 18-05-2019 . تم الاطلاع عليه بتاريخ 18-05-2019 .
  47. "دمج وحدات اختبار الميزات في C++ WD (مراجعة 2)" . www.open-std.org . مؤرشف من الأصل بتاريخ 20 يوليو 2018. تم الاطلاع عليه بتاريخ 10 نوفمبر 2018 .
  48. "تمثيلات الكائنات عبر البث الثنائي" . www.open-std.org . مؤرشف من الأصل بتاريخ 18 أغسطس 2018. تم الاطلاع عليه بتاريخ 10 نوفمبر 2018 .
  49. "P1032R1 - بتات constexpr متنوعة" . مؤرشف من الأصل بتاريخ 26-10-2018 . تم الاطلاع عليه بتاريخ 11-11-2018 .
  50. "إنشاء مؤشر ذكي مع تهيئة افتراضية" . مؤرشف من الأصل بتاريخ 26 يناير 2019. تم الاطلاع عليه بتاريخ 12 فبراير 2020 .
  51. ميخائيل مالتسيف. "P0458R2: التحقق من وجود عنصر في حاويات ترابطية" . مؤرشف من الأصل بتاريخ 16 يناير 2022. تم الاطلاع عليه بتاريخ 2 يناير 2022 .
  52. ميخائيل مالتسيف. "P0457R2: التحقق من بادئة ولاحقة السلسلة النصية" . مؤرشف من الأصل بتاريخ 18-05-2022 . تم الاطلاع عليه بتاريخ 22-06-2025 .
  53. 1 2 "P0553R4: عمليات البت" . www.open-std.org . 2019-07-20. مؤرشف من الأصل في 2019-07-20 . تم الاسترجاع في 2019-07-20 .
  54. "P0556R3: عمليات حسابية صحيحة على قوى العدد 2" . www.open-std.org . 2018-06-06. مؤرشف من الأصل في 2019-06-26 . تم الاطلاع عليه في 2020-08-08 .
  55. "P1355R2 كشف عقد ضيق لـ ceil2" . www.open-std.org . 11-06-2019. مؤرشف من الأصل في 05-08-2019 . تم الاسترجاع في 08-08-2020 .
  56. "حول أسماء وظائف معالجة البتات منخفضة المستوى" (ملف PDF) . www.open-std.org . ١١ فبراير ٢٠٢٠. مؤرشف (ملف PDF) من الأصل بتاريخ ٢٤ مارس ٢٠٢٠. تم الاطلاع عليه بتاريخ ٨ أغسطس ٢٠٢٠ .
  57. توماش كامينسكي (2017-11-09). "تطبيق دالة جزئية مبسط" . مؤرشف من الأصل بتاريخ 2020-09-28 . تم الاطلاع عليه بتاريخ 2020-11-08 .
  58. 1 2 "P1643R1: إضافة wait/notify إلى atomic_ref < T > " . www.open-std.org . 2019-07-20. مؤرشف من الأصل في 2019-08-20 . تم الاسترجاع في 2019-07-20 .
  59. "كلمات مفتاحية في لغة C++ - cppreference.com" . en.cppreference.com . مؤرشف من الأصل بتاريخ 19-03-2012 . تم الاطلاع عليه بتاريخ 04-08-2019 .
  60. "محدد صريح - cppreference.com" . en.cppreference.com . مؤرشف من الأصل بتاريخ 21-02-2012 . تم الاطلاع عليه بتاريخ 04-08-2019 .
  61. 1 2 3 "P1152R4: إيقاف استخدام volatile" . www.open-std.org . 2019-07-20. مؤرشف من الأصل بتاريخ 2019-06-23 . تم الاطلاع عليه بتاريخ 2019-07-20 .
  62. "تسلسل مُحدِّدات السمات (منذ C++11) - cppreference.com" . en.cppreference.com . مؤرشف من الأصل بتاريخ 2012-07-05 . تم الاطلاع عليه بتاريخ 2019-08-04 .
  63. "مسودة عمل، معيار لغة البرمجة C++ (الملحق ج، القسم ج.1)" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 27 أبريل 2020. تم الاطلاع عليه بتاريخ 18 نوفمبر 2020 .
  64. 1 2 "P1161R2: إيقاف استخدام عامل الفاصلة في تعابير الفهرسة" . www.open-std.org . مؤرشف من الأصل بتاريخ 20 يوليو 2019. تم الاطلاع عليه بتاريخ 20 يوليو 2019 .
  65. "إضافات C++ للتوازي، الإصدار 2" . مؤرشف (PDF) من الأصل بتاريخ 21-09-2022 . تم الاطلاع عليه بتاريخ 09-07-2019 .
  66. "امتدادات C++ للانعكاس" . مؤرشف (PDF) من الأصل بتاريخ 21-09-2022 . تم الاطلاع عليه بتاريخ 09-07-2019 .
  67. "إضافات لغة C++ للشبكات" . مؤرشف (PDF) من الأصل بتاريخ 21-09-2022 . تم الاطلاع عليه بتاريخ 09-07-2019 .
  68. ساتر، هيرب (20 يوليو 2019). "تقرير رحلة: اجتماع معايير ISO C++ الصيفي (كولونيا)" . مطحنة ساتر . مؤرشف من الأصل في 17 أبريل 2020. تم الاطلاع عليه في 21 يوليو 2019 .
  69. "تأملات حول مقترحات التأمل - اجتماع C++" . meetingcpp.com . مؤرشف من الأصل بتاريخ 23-06-2017 . تم الاطلاع عليه بتاريخ 30-06-2017 .
  70. "الانعكاس الساكن" . www.open-std.org . مؤرشف من الأصل بتاريخ 22-02-2020 . تم الاطلاع عليه بتاريخ 10-11-2018 .
  71. هيرب ساتر . "الفئات الفوقية" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 11 نوفمبر 2020. تم الاطلاع عليه بتاريخ 23 يوليو 2017 .
  72. «اقتراح تنفيذ موحد للغة C++» . www.open-std.org . مؤرشف من الأصل بتاريخ 20 فبراير 2020. تم الاطلاع عليه بتاريخ 24 فبراير 2019 .
  73. "N4771: مسودة عمل، ملحقات C++ للشبكات" (ملف PDF) . مؤرشف (PDF) من الأصل بتاريخ 19 أبريل 2020. تم الاطلاع عليه بتاريخ 23 مارس 2019 .
  74. "ISO/IEC TS 19216:2018 لغات البرمجة - امتدادات C++ للشبكات" . مؤرشف من الأصل بتاريخ 15 يناير 2019. تم الاطلاع عليه بتاريخ 17 ديسمبر 2018 .
  75. "آلية عامة لتخصيص الخصائص" . www.open-std.org . مؤرشف من الأصل بتاريخ 19 يناير 2020. تم الاطلاع عليه بتاريخ 24 فبراير 2019 .
  76. "مقترح مستقبلي موحد للغة C++" . مؤرشف من الأصل بتاريخ 21-09-2022 . تم الاطلاع عليه بتاريخ 08-07-2019 .
  77. "دعم مُصرّف لغة C++ - cppreference.com" . en.cppreference.com . مؤرشف من الأصل بتاريخ 2022-08-08 . تم الاطلاع عليه بتاريخ 2022-08-12 .
  78. jawiddis. "ملاحظات إصدار Visual Studio 2019 الإصدار 16.10" . docs.microsoft.com . مؤرشف من الأصل بتاريخ 11 أغسطس 2021. تم الاطلاع عليه بتاريخ 13 يوليو 2021 .
  79. "MSVC C++20 ومفتاح /std:c++20" . docs.microsoft.com . 2 سبتمبر 2021. مؤرشف من الأصل في 6 سبتمبر 2021. تم الاطلاع عليه في 7 سبتمبر 2021 .
  80. وثائق Visual Studio للغة Microsoft C++ ، وثائق Microsoft، 19 أبريل 2022، مؤرشفة من الأصل في 19 أبريل 2022 ، تم استرجاعها في 19 أبريل 2022
  81. "توافق Visual Studio 2019" . docs.microsoft.com . مؤرشف من الأصل بتاريخ 2020-06-03 . تم الاطلاع عليه بتاريخ 2022-08-12 .
  82. "Clang - حالة لغة برمجة C++" . clang.llvm.org . مؤرشف من الأصل بتاريخ 2013-07-04 . تم الاطلاع عليه بتاريخ 2022-04-19 .
  83. "دعم مُصرّف لغة C++ - cppreference.com" . en.cppreference.com . مؤرشف من الأصل بتاريخ 3 أكتوبر 2020. تم الاطلاع عليه بتاريخ 10 أكتوبر 2020 .
  84. "أندرو ساتون - [ رقعة ] إضافة -std=c++2a" . gcc.gnu.org . مؤرشف من الأصل بتاريخ 2021-03-01 . تم الاطلاع عليه بتاريخ 2022-04-19 .
  85. "دعم معايير لغة C++ في GCC - مشروع GNU" . gcc.gnu.org . مؤرشف من الأصل بتاريخ 20 أبريل 2022. تم الاطلاع عليه بتاريخ 19 أبريل 2022 .
  86. هيرب ساتر (15 يوليو 2017). "تقرير رحلة: اجتماع معايير ISO C++ الصيفي (تورنتو)" . مؤرشف من الأصل بتاريخ 6 أغسطس 2017. تم الاطلاع عليه بتاريخ 16 يوليو 2017 .
  87. أندرو ساتون؛ بيارن ستروستروب (24 فبراير 2013). "مفاهيم مبسطة: تقييد القوالب باستخدام المسندات" . isocpp.org . مؤرشف من الأصل في 16 يناير 2021. تم الاطلاع عليه في 13 يناير 2021 .
  88. هيرب ساتر (11 نوفمبر 2017). "تقرير رحلة: اجتماع معايير ISO C++ الخريفي (ألبوكيرك)" . مؤرشف من الأصل في 13 فبراير 2019. تم الاطلاع عليه في 4 ديسمبر 2017 .
  89. سميث، ريتشارد؛ بيرتشيك، داون؛ كوب، توماس. "تقرير المحررين N4714 - لغات البرمجة - C++" . مسودات معايير C++ . جيت هاب . مؤرشف من الأصل في 21 سبتمبر 2022. تم الاطلاع عليه في 27 ديسمبر 2018 .
  90. بوتوند بالو (28 مارس 2018). "تقرير رحلة: اجتماع معايير لغة C++ في جاكسونفيل، مارس 2018" . مؤرشف من الأصل بتاريخ 18 مايو 2019. تم الاطلاع عليه بتاريخ 18 مايو 2019 .
  91. هيرب ساتر (2 يوليو 2018). "تقرير رحلة: اجتماع معايير ISO C++ الصيفي (رابرسويل)" . مؤرشف من الأصل بتاريخ 23 مايو 2020. تم الاطلاع عليه بتاريخ 10 نوفمبر 2018 .
  92. "دعم البرمجة التعاقدية في لغة C++" . www.open-std.org . مؤرشف من الأصل بتاريخ 15 يناير 2020. تم الاطلاع عليه بتاريخ 10 نوفمبر 2018 .
  93. اجتماع الخريف في نوفمبر 2018
  94. "P1289R0 - التحكم في الوصول في شروط العقد" (ملف PDF) . مؤرشف (PDF) من الأصل بتاريخ 11-11-2018 . تم الاطلاع عليه بتاريخ 11-11-2018 .
  95. اجتماع شتوي في فبراير 2019
  96. "r/cpp - تقرير رحلة لجنة ISO C++ إلى كونا في فبراير 2019 (اكتمل تصميم C++20؛ الوحدات النمطية في C++20؛ الروتينات الفرعية في C++20؛ نُشر الإصدار الأول من Reflection TS؛ بدأ العمل على تقرير فني لنظام C++ البيئي)" . reddit . 23 فبراير 2019. مؤرشف من الأصل في 23 فبراير 2019. تم الاطلاع عليه في 24 فبراير 2019 .
  97. "تقرير رحلة: اجتماع معايير ISO C++ الشتوي (كونا)" . ساتر ميل . 23 فبراير 2019. مؤرشف من الأصل في 24 فبراير 2019. تم الاطلاع عليه في 24 فبراير 2019 .
  98. "دعوة ومعلومات اجتماع كولونيا 2019" (ملف PDF) .
  99. "r/cpp - تقرير رحلة لجنة ISO C++ إلى كولونيا، يوليو 2019 — 🚀 هبط نسر C++20 🚀 (تم شحن مسودة لجنة C++20؛ نُقلت العقود من C++20 إلى مجموعة دراسة؛ 'std::format' في C++20؛ مكتبة مزامنة C++20)" . reddit . 20 يوليو 2019. مؤرشف من الأصل في 20 أبريل 2020. تم الاسترجاع في 15 سبتمبر 2019 .
  100. بوتوند بالو (26 يوليو 2019). "تقرير رحلة: اجتماع معايير لغة C++ في كولونيا، يوليو 2019" . مؤرشف من الأصل بتاريخ 26 فبراير 2020. تم الاطلاع عليه بتاريخ 5 أغسطس 2019 .
  101. ساتر، هيرب (20 يوليو 2019). "تقرير رحلة: اجتماع معايير ISO C++ الصيفي (كولونيا)" . مؤرشف من الأصل بتاريخ 17 أبريل 2020. تم الاطلاع عليه بتاريخ 21 يوليو 2019 .
  102. جوسوتيس، نيكولاي. "P1823R0: إزالة العقود من C++20" (ملف PDF) . مؤرشف (PDF) من الأصل بتاريخ 13 أغسطس 2020. تم الاطلاع عليه بتاريخ 20 أغسطس 2019 .
  103. "السماح بالتهيئة الافتراضية البسيطة في سياقات constexpr" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 19-10-2020 . تم الاطلاع عليه بتاريخ 20-07-2019 .
  104. "P1668R1: تمكين الدوال المضمنة في Constexpr من خلال السماح باستخدام inline-asm غير المُقيَّم في دوال Constexpr" . www.open-std.org . مؤرشف من الأصل بتاريخ 19 يناير 2020. تم الاطلاع عليه بتاريخ 20 يوليو 2019 .
  105. "P1186R3: متى تستخدم <=> فعليًا؟" . www.open-std.org . 2019-07-20. مؤرشف من الأصل في 2019-08-20 . تم الاطلاع عليه في 2019-07-20 .
  106. "P1630R1: المركبة الفضائية بحاجة إلى صيانة" . www.open-std.org . 2019-07-20. مؤرشف من الأصل في 2019-08-20 . تم الاطلاع عليه في 2019-07-20 .
  107. "P1766R1: التخفيف من مشاكل الوحدات النمطية البسيطة" . www.open-std.org . 2019-07-20. مؤرشف من الأصل في 2019-08-20 . تم الاطلاع عليه في 2019-07-20 .
  108. "P1452R2: حول الدلالات غير الموحدة لمتطلبات نوع الإرجاع" . www.open-std.org . 2019-07-20. مؤرشف من الأصل في 2019-08-20 . تم الاطلاع عليه في 2019-07-20 .
  109. "P1771R1: nodiscard for constructors" (ملف PDF) . www.open-std.org . 2019-07-20. مؤرشف (PDF) من الأصل بتاريخ 2022-09-21 . تم الاطلاع عليه بتاريخ 2019-07-20 .
  110. "P1754R1: إعادة تسمية المفاهيم إلى standard_case في C++20، ما دام ذلك ممكنًا" (ملف PDF) . www.open-std.org . 2019-07-20. مؤرشف (PDF) من الأصل بتاريخ 2019-08-20 . تم الاطلاع عليه بتاريخ 2019-07-20 .
  111. "P0645R10: تنسيق النصوص" . www.open-std.org . 2019-07-20. مؤرشف من الأصل في 2019-08-20 . تم الاطلاع عليه في 2019-07-20 .
  112. "std::format في C++20" . www.zverovich.net . 23 يوليو 2019. مؤرشف من الأصل في 23 يوليو 2019. تم الاطلاع عليه في 15 سبتمبر 2019 .
  113. "P1361R2: دمج وظيفة التوقيت مع تنسيق النصوص" (ملف PDF) . www.open-std.org . 2019-07-20. مؤرشف (PDF) من النسخة الأصلية بتاريخ 2019-08-20 . تم الاطلاع عليه بتاريخ 2019-07-20 .
  114. "P1652R1: حالات خاصة في دالة printf ضمن std::format" . www.open-std.org . 2019-07-20. مؤرشف من الأصل بتاريخ 2019-08-20 . تم الاطلاع عليه بتاريخ 2019-07-20 .
  115. "P1965R2: constexpr INVOKE" . www.open-std.org . 2019-07-20. مؤرشف من الأصل في 2019-08-20 . تم الاطلاع عليه في 2019-07-20 .
  116. "P0631R8: الثوابت الرياضية" (ملف PDF) . www.open-std.org . 2019-07-20. مؤرشف (PDF) من الأصل بتاريخ 2019-08-20 . تم الاطلاع عليه بتاريخ 2019-07-20 .
  117. "P1664R0: إضافة wait/notify إلى atomic<shared_ptr < T > >" . www.open-std.org . 2019-07-20. مؤرشف من الأصل في 2021-11-05 . تم الاسترجاع في 2019-07-20 .
  118. "P1614R2: هبوط السفينة الأم - إضافة <=> إلى المكتبة" . www.open-std.org . 2019-07-20. مؤرشف من الأصل في 2019-08-20 . تم الاسترجاع في 2019-07-20 .
  119. "P1502R1: وحدات رأس المكتبة القياسية للغة C++20" . www.open-std.org . 2019-07-20. مؤرشف من الأصل في 2019-08-20 . تم الاطلاع عليه في 2019-07-20 .
  120. "P1135R6: مكتبة التزامن C++20" . www.open-std.org . 2019-07-20. مؤرشف من الأصل في 2019-08-20 . تم الاطلاع عليه في 2019-07-20 .
  121. "P0514R4: انتظار متزامن فعال للغة C++20" (ملف PDF) . مؤرشف (PDF) من الأصل بتاريخ 18 أغسطس 2018. تم الاطلاع عليه بتاريخ 20 يوليو 2019 .
  122. "P0666R2: Revised Latches and Barriers for C++20" (ملف PDF) . مؤرشف (PDF) من الأصل بتاريخ 18-08-2018 . تم الاطلاع عليه بتاريخ 20-07-2019 .
  123. "P0995R1: تحسين atomic_flag" . مؤرشف من الأصل بتاريخ 20 يوليو 2019. تم الاطلاع عليه بتاريخ 20 يوليو 2019 .
  124. "P1285R0: لا تجعل لغة C++ غير قابلة للتنفيذ على وحدات المعالجة المركزية الصغيرة" . مؤرشف من الأصل بتاريخ 15 يوليو 2019. تم الاطلاع عليه بتاريخ 20 يوليو 2019 .
  125. "P1208R6: اعتماد source_location من أساسيات المكتبة الإصدار 3 للغة C++20" (ملف PDF) . مؤرشف (PDF) من الأصل بتاريخ 20 أغسطس 2019. تم الاطلاع عليه بتاريخ 20 أغسطس 2019 .
  126. "P0980R1: جعل std::string constexpr" (ملف PDF) . مؤرشف (PDF) من الأصل بتاريخ 29-09-2020 . تم الاطلاع عليه بتاريخ 30-07-2020 .
  127. "P1004R2: جعل std::vector constexpr" (ملف PDF) . مؤرشف (PDF) من الأصل بتاريخ 28-09-2020 . تم الاطلاع عليه بتاريخ 30-07-2020 .
  128. "P0660R10: إيقاف الرمز المميز والانضمام إلى سلسلة العمليات" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 20 أغسطس 2019. تم الاطلاع عليه بتاريخ 20 أغسطس 2019 .
  129. اجتماع الخريف في نوفمبر 2019
  130. "r/cpp - تقرير رحلة لجنة ISO C++ في بلفاست بتاريخ 2019-11 — بدء معالجة التعليقات على مسودة لجنة C++20؛ تشكيل فريق مراجعة واجهة التطبيق الثنائية (ABI)" . reddit . 9 نوفمبر 2019. مؤرشف من الأصل بتاريخ 2019-11-09 . تم الاطلاع عليه بتاريخ 2019-11-09 .
  131. ساتر، هيرب (9 نوفمبر 2019). "تقرير رحلة: اجتماع معايير ISO C++ الخريفي (بلفاست)" . مطحنة ساتر . مؤرشف من الأصل في 9 نوفمبر 2019. تم الاسترجاع في 9 نوفمبر 2019 .
  132. botondballo (15 نوفمبر 2019). "تقرير رحلة: اجتماع معايير لغة C++ في بلفاست، نوفمبر 2019" . ها هو والدو! . مؤرشف من الأصل في 20 نوفمبر 2019. تم الاسترجاع في 24 نوفمبر 2019 .
  133. "P1907R0: تناقضات مع معلمات القوالب غير النوعية" . www.open-std.org . 2019-10-07. مؤرشف من الأصل في 2019-11-09 . تم الاسترجاع في 2019-11-09 .
  134. "P1714: بروتوكول NTTP غير مكتمل بدون أنواع البيانات float وdouble وlong double! (مراجعة 1)" . www.open-std.org . 19-07-2019. مؤرشف من الأصل في 09-11-2019 . تم الاطلاع عليه في 09-11-2019 .
  135. "P1855R=: Make <compare> freestanding" . www.open-std.org . 2019-10-05. مؤرشف من الأصل في 2019-11-09 . تم الاسترجاع في 2019-11-09 .
  136. "P1872R0: يجب أن يكون لـ span نوع حجم وليس نوع فهرس" (ملف PDF) . www.open-std.org . 16-09-2019. مؤرشف (PDF) من الأصل بتاريخ 09-11-2019 . تم الاطلاع عليه بتاريخ 09-11-2019 .
  137. "P1456: طرق العرض للتحريك فقط" (ملف PDF) . www.open-std.org . 25 يناير 2019. مؤرشف (ملف PDF) من الأصل بتاريخ 9 نوفمبر 2019. تم الاطلاع عليه بتاريخ 9 نوفمبر 2019 .
  138. "P1391: مُنشئ النطاق لـ std::string_view" (ملف PDF) . www.open-std.org . مؤرشف (PDF) من الأصل بتاريخ 2020-01-04 . تم الاطلاع عليه بتاريخ 2019-11-09 .
  139. "P1394: مُنشئ النطاق لـ std::span" (ملف PDF) . www.open-std.org . 2019-08-02. مؤرشف (PDF) من الأصل بتاريخ 2019-11-09 . تم الاطلاع عليه بتاريخ 2019-11-09 .
  140. "P1870R1: نطاق إعادة التوجيه <T> دقيق للغاية" . www.open-std.org . 6 أكتوبر 2019. مؤرشف من الأصل في 9 نوفمبر 2019. تم الاطلاع عليه في 9 نوفمبر 2019 .
  141. "P0883: إصلاح التهيئة الذرية" (ملف PDF) . www.open-std.org . 2018-06-05. مؤرشف (ملف PDF) من الأصل بتاريخ 2019-11-09 . تم الاطلاع عليه بتاريخ 2019-11-09 .
  142. "وحدات الماكرو المفقودة لاختبار الميزات 2018-2019" . www.open-std.org . 2019-10-06. مؤرشف من الأصل في 2019-11-09 . تم الاسترجاع في 2019-11-09 .
  • رابط لشراء معيار ISO/IEC 14882:2020 من متجر ISO الإلكتروني.
  • N4860 ، النسخة النهائية من مسودة المعيار.
  • JTC1/SC22/WG21 مجموعة العمل المعنية بمعايير لغة C++ التابعة لمنظمة ISO/IEC (المعروفة أيضًا باسم لجنة معايير C++) 
  • مستودع Ranges ( range-v3 ) على GitHub، من إعداد إريك نيبلر