ฟีเจอร์หลักของ C++20 - สรุปพร้อมตัวอย่าง
(oleksandrkvl.github.io)-
Concepts
-
Modules
-
Coroutines
-
การเปรียบเทียบแบบสามทาง
-
Lambda expressions
-
Constant expressions
-
Aggregates
-
พารามิเตอร์เทมเพลตที่ไม่ใช่ชนิดข้อมูล
-
Structured bindings
-
ลูป for แบบอิงช่วงข้อมูล
-
Attributes : [[likely]] , [[unlikely]] , [[no_unique_address]] , [[nodiscard]]
-
การเข้ารหัสอักขระ : char8_t
-
Sugar
-
constinit
-
จำนวนเต็มแบบ signed ใช้ two’s complement
-
VA_OPT สำหรับ variadic macros
-
ฟังก์ชันที่กำหนดเป็นค่าเริ่มต้นอย่างชัดเจนพร้อมข้อกำหนด exception ที่แตกต่างกัน
-
Destroying operator delete
-
คอนสตรัคเตอร์แบบ explicit ตามเงื่อนไข
-
Feature-test macros
-
การแปลงอาร์เรย์จากขอบเขตที่ทราบไปเป็นขอบเขตที่ไม่ทราบ
-
Implicit move สำหรับ local objects และ rvalue references เพิ่มเติม
-
การแปลงจาก T* เป็น bool เป็นการทำให้ช่วงค่าแคบลง
-
เลิกแนะนำการใช้งาน volatile บางรูปแบบ
-
เลิกแนะนำ comma operator ใน subscripts
2 ความคิดเห็น
C++11, 14, 17, 20... ออกมาอย่างสม่ำเสมอทุก 3 ปีจริง ๆ นะครับ โดยเฉพาะระบบโมดูลที่เพิ่มเข้ามาครั้งนี้ ก็หวังเป็นอย่างยิ่งว่ามันจะถูกใช้อย่างแพร่หลายและช่วยลดความเครียดเรื่องการลิงก์ลงได้มาก...
สำหรับฟีเจอร์หลักอย่าง Concepts / Contracts / Ranges/ Module, Coroutines โปรดดู C++20 Key Features Summary [เอกสารประกอบการนำเสนอภาษาเกาหลี]