【发布时间】:2017-02-05 00:06:17
【问题描述】:
根据this,用constexpr声明的函数必须满足几个要求,其中之一如下:
至少存在一个参数值,因此函数的调用可以是核心常量表达式的求值子表达式...
好吧,constexpr 函数可以有无参数:
constexpr int Bar( /* empty */ ) { return 0xFF; }
constexpr int value = Bar(); // Valid expression
constexpr作为子例程调用的函数也不能确定整个表达式是核心常量表达式。
那么必须存在一个参数值是什么意思?
[面向未来读者的更新]
显然关于constexpr function 要求的描述已经修复,因为这个问题来自:
至少存在一个参数值,因此函数的调用可以是核心常量表达式的求值子表达式...
到:
至少存在一组参数值,因此函数的调用可以是核心常量表达式的求值子表达式...
【问题讨论】:
-
我认为这意味着对于每个参数至少存在等等。
-
@MartinBonner 不,这意味着所有论点作为一个整体
标签: c++ c++11 language-lawyer constexpr