C++17 คือเวอร์ชันล่าสุดของภาษา C++ มาตรฐาน C++11 และ C++14 เป็นเวอร์ชันก่อนหน้าของ C++ เวอร์ชันปัจจุบันมีการเพิ่มภาษาหลักหลายอย่างในขณะที่คุณลักษณะก่อนหน้านี้บางส่วนถูกเอาออกด้วย C++17 เรียกว่าฟีเจอร์เต็มหรือฟีเจอร์สมบูรณ์
มีการเปลี่ยนแปลงใหม่บางอย่างใน C++17 -
การเปลี่ยนแปลงไลบรารี - การใช้ประโยชน์
นี่เป็นหนึ่งในคุณสมบัติที่น่าทึ่งที่สุดของ C++17 มันรวมคุณสมบัติและรูปแบบของไลบรารีอื่น ๆ ไลบรารีย่อยจำนวนมากถูกรวมเข้าด้วยกันเป็นมาตรฐาน
คุณลักษณะต่อไปนี้ถูกเพิ่มลงในไลบรารี utils ใน C++17 -
- std::ตัวแปร
- std::search
- std::string_view
- std::ตัวเลือก
- std::any
การเปลี่ยนแปลงไลบรารี - ระบบไฟล์
ไลบรารีมาตรฐานก่อนหน้านี้ขาดคุณสมบัติหลักบางประการ คณะกรรมการ C++ ได้ส่งเสริมห้องสมุดและรวมระบบจำนวนมากเข้าเป็นมาตรฐาน
คุณสมบัติต่อไปนี้ถูกเพิ่มไปยังระบบไฟล์ใน C++17 -
- การทำงานกับวัตถุเส้นทาง
- รองรับคอมไพเลอร์/ไลบรารี
- การข้ามเส้นทาง
การเปลี่ยนแปลงไลบรารี - อัลกอริธึมคู่ขนาน
มันผนวกคุณสมบัติใหม่บางอย่างเข้ากับคุณสมบัติก่อนหน้าของ C++11 และ C++ 17 โดยจะปลดล็อคคุณสมบัติการทำให้ขนานอัตโนมัติหรือคุณสมบัติเวกเตอร์อัตโนมัติสำหรับไลบรารีมาตรฐาน
คุณลักษณะต่อไปนี้ถูกเพิ่มลงในอัลกอริธึมแบบขนานใน C++17 -
- อัปเดตอัลกอริทึม
- นโยบายการดำเนินการ
- อัลกอริธึมใหม่
คุณสมบัติ
C++17 ได้เพิ่มแอตทริบิวต์ใหม่สามอย่าง เช่น [[maybe_unused]], [[fallthrough]] และ [[nodiscard]]
การทำให้เข้าใจง่าย
มีคุณสมบัติหลายอย่างในการทำให้โค้ดง่ายขึ้นใน C++ เวอร์ชันก่อนหน้า C++17 ได้เพิ่มคุณสมบัตินี้ในคุณสมบัติต่อไปนี้เพื่อทำให้โค้ดง่ายขึ้น -
- คำสั่งเริ่มต้นสำหรับ if/ switch
- ตัวแปรอินไลน์
- การประกาศผูกมัดที่มีโครงสร้าง
ผู้ค้นหา
C++17 ปรับปรุงผู้ค้นหาเก่าในภาษา C++ เวอร์ชันก่อนหน้า boyer_moore_horspool_searcher, default_searcher และ boyer_moore_searcher เป็นผู้ค้นหาใหม่ใน C++17