c++ - 在 C++11 中,sqrt 定义为 constexpr?

标签 c++ c++11 constexpr

在 C++11 中,std::sqrt 被定义为 constexpr,即它可以合法地从其他 constexpr 函数中使用,或者在像数组大小或模板参数这样的编译时上下文? g++ 似乎允许它(使用 -std=c++0x),但鉴于 c++0x/c++11 支持仍然不完整,我不确定我是否可以将其视为权威.我似乎无法在 Internet 上找到任何东西这一事实让我不确定。

似乎这应该是使用 Google 可以轻松找到的内容,但我已经尝试过(现在已经 40 分钟......)但找不到任何东西。我可以找到一些将 constexpr 添加到标准库的各个部分的建议(例如 this one ),但没有关于 sqrt 或其他数学函数的内容。

最佳答案

std::sqrt 未定义为 constexpr,根据 N3291 的第 26.8 节:C++11 FDIS(我怀疑他们将其添加到最后之后的标准)。可能会写出这样一个版本,但标准库版本不是 constexpr

关于c++ - 在 C++11 中,sqrt 定义为 constexpr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8622256/

相关文章:

c++ - 如何在我的 C++ 项目中包含 SQLite DLL?

c++ - 使用 boost 实现 C++11 lambda

c++ - std::merge 和 std::inplace_merge 之间的区别?

c++ - 是否在目标平台上评估了 constexpr?

带有 lambda 表达式的 constexpr 的 C++ 用法

c++ - lambda 作为静态成员

c++ - 将二叉搜索树转换为链表

c++ - XCode3 - 库搜索路径和项目框架之间的关系

c++ - 为什么十进制浮点运算的提议没有被 C++0x 接受?

c++ - 零规则与基类析构函数