C++17 เป็นเวอร์ชันมาตรฐานล่าสุดของ C++ (ก่อนหน้านี้คือ C++11 และ C++14) เพิ่มฟีเจอร์หลายอย่างใน Core Language และลบบางฟีเจอร์เก่า ทำให้ C++17 เรียกว่า "Feature Complete"
Library Changes - Utils
รวมฟีเจอร์และแพทเทิร์นจากไลบรารีอื่นๆ เข้ามาในมาตรฐาน:
std::variant− Union ที่ปลอดภัยประเภท (Type-safe Union)std::search− อัลกอริทึมค้นหาที่ปรับปรุงแล้วstd::string_view− มุมมองสตริงแบบไม่ถือครองหน่วยความจำstd::optional− ค่าที่อาจมีหรือไม่มี (Nullable Value)std::any− ตัวเก็บค่าแบบใดก็ได้ (Type-safe Container)
Library Changes - Filesystem
เพิ่มการทำงานกับระบบไฟล์มาตรฐาน:
- Path Object
- Compiler/Library Support
- Path Traversal
Library Changes - Parallel Algorithms
ปลดล็อก Auto-parallelization และ Auto-vectorization:
- Algorithm Updates
- Execution Policies
- New Algorithms
Attributes (แอตทริบิวต์ใหม่)
[[maybe_unused]]− ปิดคำเตือนตัวแปรไม่ได้ใช้[[fallthrough]]− ระบุว่า Fall-through ใน Switch เป็นเจตนา[[nodiscard]]− บังคับให้ใช้ค่าที่ส่งคืน
Simplification (การลดความซับซ้อน)
- Init Statement สำหรับ if/switch
- Inline Variables
- Structured Binding Declarations
Searchers ใหม่
boyer_moore_horspool_searcherdefault_searcherboyer_moore_searcher