Constexpr trong C ++ là gì?
Constexpr trong C ++ là gì?

Video: Constexpr trong C ++ là gì?

Video: Constexpr trong C ++ là gì?
Video: “Constexpr Everything” - The Standard Library, Microkernel, Apps, and Unit Tests - Rian Quinn 2024, Có thể
Anonim

constexpr chỉ định rằng giá trị của một đối tượng hoặc một hàm có thể được đánh giá tại thời điểm biên dịch và biểu thức có thể được sử dụng trong các biểu thức hằng số khác. Ví dụ, trong mã product () dưới đây được đánh giá tại thời điểm biên dịch. Trong C ++ 11, a constexpr hàm chỉ nên chứa một câu lệnh trả về.

Hơn nữa, Constexpr được sử dụng để làm gì?

Các constexpr specifier tuyên bố rằng có thể đánh giá giá trị của hàm hoặc biến tại thời điểm biên dịch. Các biến và hàm như vậy sau đó có thể là đã sử dụng trong đó chỉ cho phép biên dịch các biểu thức hằng số thời gian. MỘT constexpr người chỉ định Được dùng trong một khai báo đối tượng ngụ ý const.

Constexpr được đánh giá? 2 Câu trả lời. constexpr các chức năng sẽ được đánh giá tại thời điểm biên dịch khi tất cả các đối số của nó là biểu thức hằng và kết quả cũng được sử dụng trong biểu thức hằng.

Về vấn đề này, khi nào tôi nên sử dụng Constexpr?

constexpr cho biết rằng giá trị hoặc giá trị trả về là không đổi và nếu có thể, được tính toán tại thời điểm biên dịch. MỘT constexpr giá trị tích phân có thể được sử dụng ở bất cứ nơi nào yêu cầu số nguyên const, chẳng hạn như trong các đối số mẫu và khai báo mảng.

Các hàm Constexpr có nội tuyến không?

Bạn có thể thực hiện với hàm constexpr rất nhiều phép tính tại thời điểm biên dịch. Do đó, kết quả của phép tính là trong thời gian chạy dưới dạng một hằng số trong ROM có sẵn. Ngoài ra, hàm constexpr được ngầm hiểu nội tuyến . Cú pháp của hàm constexpr đã được cải tiến hàng loạt với sự thay đổi từ C ++ 11 thành C ++ 14.