Hàm constexpr có thể chứa nhãn không?
Nov 16 2020
Chương trình này :
constexpr void f() { x: ; }
được biên dịch bởi gcc, nhưng clang nói:
error: statement not allowed in constexpr function
Vậy mã này có hợp lệ không?
Trả lời
7 cigien Nov 16 2020 at 11:35
Như đã chỉ ra trong một bình luận của Nathan Pierson , Clang là đúng, và mã này không được định hình tốt. Theo bản nháp làm việc hiện tại (bao gồm C ++ 20), dcl.constexpr # 3 cho biết:
Định nghĩa của hàm constexpr phải đáp ứng các yêu cầu sau:
...
chức năng của nó không được bao bọc
...
một nhãn định danh,
...
...