我有一个看起来像这样的 constexpr 函数:
constexpr int foo(int bar)
{
static_assert(bar>arbitrary_number, "Use a lower number please");
return something_const;
}
但是,用 GCC 4.6.3 编译它一直告诉我
错误:“bar”不能出现在常量表达式中
我尝试了类似的东西
constexpr int foo(constexpr const int bar)
{
static_assert(bar>arbitrary_number, "Use a lower number please");
return something_const;
}
但 constexpr 不能用于函数参数。
是否有一些简单的方法可以告诉编译器 bar 始终是编译时间常数?