gpt4 book ai didi

c++ - 为什么 C++ 标准库不提供 cmath 函数的 constexpr 版本?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:33:36 24 4
gpt4 key购买 nike

自 C++11 以来,我们就有了 constexpr 函数,并且自从每个新标准 (14, 1z) 以来,它们的限制越来越少。

然而,STL 中最明显的函数constexprcmath/math.h 函数,仍然没有constexpr 任何标准库实现 AFAIK 中的版本。

这只是在 C++ 标准的积压中,还是有任何其他原因导致我们仍然没有这些函数的 constexpr 版本?

最佳答案

它还没有标准化。初始proposal上周刚提交,但只涵盖效用和线性运算,不包括任何超越函数。数学很难, float 学很复杂。例如,实现不允许在 constexpr 中溢出到无穷大,但这尚未明确标准化。

编译器的 constexpr 解释器必须对数学库接口(interface)进行特殊处理,因为与标准库的其余部分不同,它看不到它的实现。

GCC 确实提供了对数学函数的持续评估,作为一种不合格的扩展。

关于c++ - 为什么 C++ 标准库不提供 cmath 函数的 constexpr 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42189190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com