简介
用最简单的术语来说,一个只能应用于函数的 consteval
关键字, 保证它产生一个编译时间常数。否则会导致编译错误。
cppreference
页面对 consteval
说明符有如下描述:
consteval
指定函数是立即函数,也就是说,对该函数的每次调用都必须产生一个编译时常量
什么是立即函数?
- 不能是协程
- 函数主体中不能有
throw
语句 - 不能有
goto
语句或标签语句,除了case
和default
- 参数和返回类型必须是LiteralType,简单地说,是一个可以在编译时计算的类型(比如所有可以在
constexpr
上下文中使用的类型)