gpt4 book ai didi

c++ - constexpr 替换数学常量,如 M_PI

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:46:23 25 4
gpt4 key购买 nike

有没有C++11 constexpr常量可以用来代替 <cmath> 中的常量宏,即像 M_PI 这样的常量和 friend ?或者缺少它,任何全局 const在运行时提供这些常量的值?

最佳答案

C++ 标准库中没有定义预定义的 constexpr 或全局常量。但是您可以自己定义它们,例如:

namespace MathConstants {
const double E = 2.71828182845904523536;
const double LOG2E = 1.44269504088896340736;
const double LOG10E = 0.434294481903251827651;
const double LN2 = 0.693147180559945309417;
const double LN10 = 2.30258509299404568402;
const double PI = 3.14159265358979323846;
const double PI_2 = 1.57079632679489661923;
const double PI_4 = 0.785398163397448309616;
const double PI_1_PI = 0.318309886183790671538;
const double PI_2_PI = 0.636619772367581343076;
const double PI_2_SQRTPI = 1.12837916709551257390;
const double SQRT2 = 1.41421356237309504880;
const double SQRT1_2 = 0.707106781186547524401;
};

或者使用boost math constant templates,一些文档here(没用过)。

关于c++ - constexpr 替换数学常量,如 M_PI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15578495/

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