Constexpr ใน C ++ คืออะไร?
Constexpr ใน C ++ คืออะไร?

วีดีโอ: Constexpr ใน C ++ คืออะไร?

วีดีโอ: Constexpr ใน C ++ คืออะไร?
วีดีโอ: constexpr in C++11 2024, พฤศจิกายน
Anonim

constexpr ระบุว่าค่าของอ็อบเจ็กต์หรือฟังก์ชันสามารถประเมินได้ในเวลารวบรวม และสามารถใช้นิพจน์ในนิพจน์คงที่อื่นๆ ตัวอย่างเช่น ในโค้ดด้านล่าง product() จะถูกประเมินในเวลาคอมไพล์ ใน C++ 11, a constexpr ฟังก์ชันควรมีคำสั่ง return เพียงคำสั่งเดียว

นอกจากนี้ Constexpr ใช้ทำอะไร

NS constexpr specifier ประกาศว่าสามารถประเมินค่าของฟังก์ชันหรือตัวแปรได้ในเวลารวบรวม ตัวแปรและฟังก์ชันดังกล่าวสามารถเป็น ใช้แล้ว โดยอนุญาตให้คอมไพล์นิพจน์คงที่เวลาคอมไพล์เท่านั้น NS constexpr ตัวระบุ ใช้ใน การประกาศวัตถุแสดงถึง const

Constexpr ได้รับการประเมินหรือไม่ 2 คำตอบ constexpr หน้าที่จะเป็น ประเมินแล้ว ในเวลารวบรวมเมื่ออาร์กิวเมนต์ทั้งหมดเป็นนิพจน์คงที่และผลลัพธ์จะถูกใช้ในนิพจน์คงที่เช่นกัน

เกี่ยวกับเรื่องนี้ ฉันควรใช้ Constexpr เมื่อใด

constexpr บ่งชี้ว่าค่าหรือค่าที่ส่งกลับเป็นค่าคงที่และคำนวณ ณ เวลาคอมไพล์หากเป็นไปได้ NS constexpr สามารถใช้ค่าอินทิกรัลได้ทุกที่ที่ต้องการจำนวนเต็ม const เช่นในอาร์กิวเมนต์เทมเพลตและการประกาศอาร์เรย์

ฟังก์ชัน Constexpr เป็นแบบอินไลน์หรือไม่

คุณสามารถดำเนินการกับ ฟังก์ชัน constexpr การคำนวณจำนวนมากในเวลารวบรวม ดังนั้น ผลลัพธ์ของการคำนวณจะอยู่ที่รันไทม์เป็นค่าคงที่ใน ROM ที่พร้อมใช้งาน นอกจากนี้, ฟังก์ชัน constexpr เป็นนัย อินไลน์ . ไวยากรณ์ของ ฟังก์ชัน constexpr ได้รับการปรับปรุงอย่างมากด้วยการเปลี่ยนจาก C++11 เป็น C++14