NoS*_*tAl 8 c++ constexpr c++20
从 C++20 开始,std::isnan 不是 constexpr。
这有技术原因吗?
我能想到的只是它在“C 头文件”中,所以没有人费心去修复它(<limits>处理浮点数的函数是 constexpr,但不幸的numeric_limits是不包含 isnan 检查)。
<limits>
numeric_limits
And*_*dyG 7
答案基本上是“因为提案还没有合并到标准中”
P0533提出了你所问的问题,但它没有进入 C++20。
一个阻碍是,这个提议可能有点大……<cmath>或<cstdlib>中的一些函数被允许设置全局错误代码,这使整个“constexpr所有事物”提议变得复杂*
<cmath>
<cstdlib>
constexpr
我认为这些分类功能应该没有任何问题;std::isnan和它的兄弟std::fpclassify被定义为与 C 宏isnan和 的行为相同fpclassify。这将需要稍微改变。
std::isnan
std::fpclassify
isnan
fpclassify
*(旁白:p2043 “不要把constexpr所有的事情”在这里切切相关,但它只是在谈论元编程)
归档时间:
5 年,6 月 前
查看次数:
296 次
最近记录:
4 年,12 月 前