分类: WINDOWS
2009-05-28 17:09:28
|
Comeau C/C++ 4.3.10.1 (Oct 6 2008 11:28:09) for ONLINE_EVALUATION_BETA2
上都可以通过编译, 标准中也的确说对于整型家族可以如此.
其中 Comeau的编译器我现在手头还没有, 但它提供了一些在线编译你的C++代码的URL, 只是不能运行看结果.
实验结果是: 可以在类内部不指定初始化值. 在静态成员定义处指定, 也可以在内部指定, 定义处不指定. 还可以在内部即声明又定义时指定, 同时不额外提供一个外部定义.
查了Effective C++ 3rd, 作者对这个问题仍没有更新.
给大师挑刺是很危险的, 幸好我又去查对了相关主题的其它一些材料, 其中人称教主的BS在其主页上这么说:
I tend to use the "enum trick" because it's portable and doesn't tempt me to use non-standard extensions of the in-class initialization syntax.
老大是在解释为什么C++中强制了如此不便的限制, 以及如何应对. 但这里我不知道他是说整数类型的初始化本身也是非标准的, 还是担心其它编译器只是对初始化语法作了扩展, 看来, 声明+定义仍是中规中矩的安全做法.