只有当成员是非易失性const整数类型时,C ++才能在类声明中初始化常量静态成员。
但为什么整体类型?浮点数等其他类型是否存在任何实现问题?精度可能吗?
struct testClass
{
static const int val = 12;
//static const float val = 12;
};
答案 0 :(得分:2)
注意。编译器模拟目标上的浮点实现并不总是容易(甚至可行),并且无论如何,通过改变舍入模式可以动态地改变目标上的浮点行为。
所以涉及编译时浮点值的任何事情都很棘手。 C ++ 03没有任何可能鼓励它的东西; - )
C ++ 11允许您使用constexpr
代替const
。