C++11 เป็นภาษา C++ มาตรฐานรุ่นหนึ่ง ได้รับการอนุมัติจาก International Organisation for Standardization (ISO) เมื่อวันที่ 12 สิงหาคม 2011 จากนั้น C++14 และ C++17 C ++ 11 เพิ่มภาษาหลักหลายประการ Visual C++ ใช้คุณลักษณะส่วนใหญ่ใน C++11
คุณลักษณะ C++11 บางอย่างต่อไปนี้ใน Visual Studio 2015 -
-
nullptr − ใน nullptr ก่อนหน้า ศูนย์เคยเป็นค่าและมีข้อเสียเปรียบของการแปลงโดยปริยายเป็นค่าปริพันธ์ ลิเทอรัลพอยน์เตอร์ null ถูกแสดงโดยstd::nullptr_t ใน nullptr นี้ ไม่มีการแปลงโดยนัย
-
แลมบ์ดาส − นิพจน์แลมบ์ดาอนุญาตให้กำหนดฟังก์ชันในเครื่อง ฟังก์ชันที่ไม่ระบุชื่อเรียกว่าแลมบ์ดา เราสามารถใช้นิพจน์แลมบ์ดาได้ทุกที่ที่คาดว่าวัตถุฟังก์ชัน std::function
-
อัตโนมัติ - ในเวอร์ชันก่อนหน้า เราต้องระบุประเภทของวัตถุ แต่ใน C++11 ไม่จำเป็นต้องระบุประเภท ซึ่งหมายความว่าคุณสามารถประกาศตัวแปรได้โดยตรงโดยไม่ต้องระบุประเภท
-
ลบล้างและสิ้นสุด − เวอร์ชัน C++11 ได้แนะนำตัวระบุพิเศษใหม่สองตัว นั่นคือ การแทนที่และขั้นสุดท้าย การแทนที่บ่งชี้ว่าเมธอดควรจะเป็นการแทนที่เมธอดเสมือนในคลาสฐาน ในทางกลับกัน Final ระบุว่าคลาสที่ได้รับไม่ควรแทนที่เมธอดเสมือน
-
ฟังก์ชั่นที่ถูกลบและเริ่มต้น − ฟังก์ชันที่ถูกลบมีประโยชน์ในการป้องกันการคัดลอกวัตถุ หากต้องการปิดใช้งานการคัดลอก " =delete; " ถูกนำมาใช้. ฟังก์ชันเริ่มต้นจะให้คำแนะนำแก่คอมไพเลอร์เพื่อสร้างการใช้งานเริ่มต้นของฟังก์ชันและ " =default; “ ใช้สำหรับฟังก์ชั่นเริ่มต้น
-
enums ที่พิมพ์แรง − ใน enums ดั้งเดิม พวกเขาเคยส่งออกตัวแจงนับในขอบเขตโดยรอบ พวกเขาถูกระบุเป็นคีย์เวิร์ด "enum class" พวกเขาไม่ส่งออกตัวแจงนับในขอบเขตโดยรอบ
-
Static_assert และลักษณะการพิมพ์ − มันทำการตรวจสอบยืนยันในขณะที่รวบรวม หากการยืนยันเป็นจริง จะไม่แสดงอะไรเป็นอย่างอื่น จะแสดงข้อความแสดงข้อผิดพลาด
-
ตามช่วงสำหรับลูป − C++11 แนะนำตามช่วงสำหรับการวนซ้ำสำหรับการวนซ้ำคอลเลกชัน ตอนนี้ เป็นไปได้ที่จะวนซ้ำเหมือน C-array รองรับกระบวนทัศน์ 'foreach' ของการวนซ้ำ