Nei*_*l G 11 cmath constexpr c++11
出于某种原因,clang ++(但不是g ++)抱怨:
constexpr double invdecayf1m(double x) {
return -log1p(-x);
}
Run Code Online (Sandbox Code Playgroud)
告诉我
non-constexpr function 'log1p' cannot be used in a constant expression
return -log1p(-x);
Run Code Online (Sandbox Code Playgroud)
为什么在所有声明的常用数学函数<cmath>都不是" constexpr函数"?
我认为唯一的原因是没有人写一个提案来使它们成为 constexpr。一般来说这是可能的,因为它们是纯函数。实现可以使用编译器内在函数来为它们的库实现它们,因此不需要“真正的”实现。但如果没有建议,您就不能指望constexpr这些功能的实现。
| 归档时间: |
|
| 查看次数: |
370 次 |
| 最近记录: |