Есть ли C ++ 11 constexpr
константы, которые можно использовать вместо макроса констант из <cmath>
то есть постоянные как M_PI
и друзья? Или без этого, любой глобальный const
значения, которые предоставляют эти константы во время выполнения?
В стандартной библиотеке C ++ нет предопределенных констант или глобальных констант. Но вы можете определить их самостоятельно, например:
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, некоторую документацию Вот (не использовал его).
Других решений пока нет …