在 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/