是否可以创建一个double类型的变量,它的值为1*10^x,其中x是基于整数模板参数的。例如:
template < int exp >
struct DoubleValue
{
static constexpr double value = ????;
}
double d = DoubleValue<20>::value; // = 1e20
double d = DoubleValue<-20>::value; // = 1e-20
由于它可以使用字面量创建,因此似乎应该有可能做到这一点。
我希望该值在编译时计算(因此据我所知,std::pow将无法实现)。 此外,如果可能的话,我希望能够避免实际的迭代计算((可能是毫无根据的)担心精度问题)。我还希望能够使用更大的指数值,例如200,这使得将该值存储在标准整数类型中变得不可能。
std::pow(10, exp)
? - iBugstd::pow
不行,因为它不是constexpr
。 - Marek R