为什么C++标准库不提供 cmath 函数的 constexpr 版本?
Why doesn't the C++ standard library provide constexpr versions of the cmath functions?
自 C++11 以来,我们constexpr
函数,并且自从每个新标准(14, 1z(以来,它们的限制越来越少。
然而,STL中最明显的函数可以constexpr
,cmath
/math.h
函数,在任何标准库实现AFAIK中仍然没有constexpr
版本。
这仅仅是在C++标准的积压工作中,还是有任何其他原因导致我们仍然没有这些函数的constexpr
版本?
它还没有标准化。上周刚刚提交了一份初步提案,但只涵盖了效用和线性运算,而不是任何超越函数。数学很难,浮点数学很复杂。例如,实现不允许在constexpr
中溢出到无穷大,但这还没有明确的标准化。
编译器的constexpr
解释器必须对数学库接口进行特殊处理,因为与标准库的其余部分不同,它看不到它的实现。
GCC 确实提供数学函数的持续评估作为不符合的扩展。
相关文章:
- 条件constexpr函数
- constexpr 函数中的非文字(通过 std::is_constant_evaluated)
- constexpr构造函数需要常量成员函数时出现问题
- constexpr 函数获取常量字符*
- 如何在 constexpr 函数中实现回退运行时
- 为什么我不能在 constexpr lambda 函数中使用 std::tuple
- 在非 constexpr 函数中作为左值传递的变量上使用 'constexpr' 函数
- 在 constexpr 构造函数 (c++17) 中赋值到 const char * 在使用 Android NDK 时
- NVCC 错误:string_view.h:constexpr 函数返回是非常量
- constexpr函数中的静态constexpr变量
- 在 constexpr funnction 中调用basic_string函数
- 为什么我的 constexpr 对象在我的函数中不是 constexpr?
- constexpr log10 整数函数
- C++:初始化 constexpr 构造函数中的成员数组
- 编译器生成的默认构造函数具有 constexpr 混淆行为
- 在 constexpr 构造函数中初始化数组是否合法?
- 在 constexpr 函数中断言
- MSVC 和函数参数的 constexpr?
- 具有位域的结构的 Constexpr 构造函数
- C++ 默认构造函数 constexpr 或正确未定义