4

constexprの定数マクロの代わりに使用できるC++11定数<cmath>、つまり、M_PIや友達のような定数はありますか?またはそれが欠けている場合const、実行時にこれらの定数を提供するグローバル値はありますか?

4

1 に答える 1

5

C++標準ライブラリで定義された定義済みのconstexprまたはグローバルconst定数はありません。ただし、たとえば次のように、自分で定義することができます。

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;
};

または、ブースト数学定数テンプレートを使用します。ここにいくつかのドキュメントがあります(まだ使用していません)。

于 2013-03-22T22:21:22.893 に答える