有没有办法实现不同的行为constexpr
编译阶段和运行时的函数?
考虑以下示例(使用来自D: static if
):
constexpr int pow( int base , int exp ) noexcept
{
static if( std::evaluated_during_translation() ) {
auto result = 1;
for( int i = 0 ; i < exp ; i++ )
result *= base;
return result;
} else { // std::evaluated_during_runtime()
return std::pow( base , exp );
}
}
如果不行的话有没有办法限制constexpr
仅编译时?
不,没有这样的办法。
Sorry.
N3583是一篇论文 http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3583.pdf提出更改以满足您的要求。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)