我注意到C ++不会编译以下内容:
class No_Good {
static double const d = 1.0;
};
但是,它很乐意允许将double更改为int,unsigned或任何整数类型的变体:
class Happy_Times {
static unsigned const u = 1;
};
我的解决方案是将其更改为:
class Now_Good {
static double d() { return 1.0; }
};
并认为编译器将足够聪明,可以在需要时进行内联...但是,这使我感到好奇。
为什么C ++设计人员可以让我将const静态地设置为int或unsigned,而不允许double?
编辑:我在Windows XP上使用Visual Studio 7.1(.net 2003)。
编辑2:
问题已经回答,但是为了完成,我看到的错误是:
error C2864: 'd' : only const static integral data members can be initialized inside a class or struct
POPMUISE
相关分类