msdn 页面“C++”处的拼写错误常量表达式”?
它在 c++ 常量表达式的 msdn 页面 中说:
非整数常数必须是 转换(显式或 隐式地)转换为整数类型 常量表达式中合法。 因此,下面的代码是 合法:
const double Size = 11.0; char chArray[(int)大小];
至少在 VC++ 10.0 上,第二行生成:“错误 C2057:预期的常量表达式”。那么它在其他编译器上是合法的还是msdn页面根本就是错误的?
It says at msdn page for c++ constant expressions that:
Nonintegral constants must be
converted (either explicitly or
implicitly) to integral types to be
legal in a constant expression.
Therefore, the following code is
legal:const double Size = 11.0; char chArray[(int)Size];
At least on VC++ 10.0 the second line produces: "error C2057: expected constant expression". So is it legal on some other compiler or is the msdn page simply wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据 5.19/1 :
据我了解,该代码无效,而以下代码是合法的:
According to 5.19/1 :
From my understanding the code is invalid, while the following is legal :
根据标准 C++,这是不合法的。规范中的规则请参见 5.19/2。
That's not legal according to Standard C++. See 5.19/2 for the rules in the spec.