msdn 页面“C++ 常量表达式”中的拼写错误?

2024-05-11

它说在C++ 常量表达式的 msdn 页面 http://msdn.microsoft.com/en-us/library/3ffb821x.aspx that:

非整数常量必须是 转换(显式或 隐式地)转换为整数类型 常量表达式中合法。 因此,下面的代码是 合法的:

const double Size = 11.0;
char chArray[(int)Size];

至少在 VC++ 10.0 上,第二行会生成:“错误 C2057:预期的常量表达式”。那么它在其他编译器上是合法的还是msdn页面根本就是错误的?


根据 5.19/1 :

An 积分常量表达式能 仅涉及文字(2.13), 枚举器,const变量或者 静态数据成员的积分或 枚举类型初始化为 常量表达式 (8.5),非类型 积分或的模板参数 枚举类型,以及sizeof表达式。浮动文字 (2.13.3) 仅当它们是时才会出现 转换为整数或枚举 类型.

据我了解,该代码无效,而以下代码是合法的:

char chArray[(int)11.0];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

msdn 页面“C++ 常量表达式”中的拼写错误? 的相关文章

随机推荐