Theo this, một chức năng khai báo với constexpr
phải đáp ứng một vài yêu cầu, một trong số đó là như sau:hàm constexpr phải có một giá trị đối số?
tồn tại ít nhất giá trị một đối số như rằng một lời gọi của hàm có thể được một đánh giá subexpression của một biểu thức hằng lõi ...
Vâng, constexpr
chức năng có thể có không có đối số:
constexpr int Bar(/* empty */) { return 0xFF; }
constexpr int value = Bar(); // Valid expression
constexpr
chức năng được gọi là một thường trình con không thể xác định toàn bộ biểu thức là biểu thức liên tục lõi.
Vì vậy, điều này có ý nghĩa gì bởi một giá trị đối số phải tồn tại?
[Cập nhật cho độc giả tương lai]
Rõ ràng mô tả về các yêu cầu của constexpr function
đã được cố định kể từ khi câu hỏi này từ:
tồn tại ít nhất một đối số giá trị như vậy mà một việc gọi hàm có thể là biểu thức con được đánh giá của biểu thức hằng số lõi ...
tới:
tồn tại ít nhất một bộ luận đánh giá cao như rằng một lời gọi của hàm có thể là một subexpression đánh giá của một biểu thức hằng lõi ...
Tôi * nghĩ * có nghĩa là * đối với mỗi đối số * tồn tại ít nhất, v.v. –
@MartinBonner no, nó có nghĩa là cho tất cả các đối số như là một toàn bộ –