我在 PDF 中阅读了以下段落:http: //www.stroustrup.com/what-is-2009.pdf
收窄
也许您注意到我一直使用 {} 初始化。或许,你也认为我在丑化代码,对一个新奇的功能过分迷恋?当然,这种情况会发生,但我认为情况并非如此。考虑:
int x1 = 64000; int x2 { 64000 };
我们可以就这两个定义的美学进行友好的讨论,您甚至可以指出 {} 版本比 = 需要多一次击键。但是,这两种形式之间存在一个显着差异,使我选择了 {}。{} 版本不允许缩小范围,我没有告诉您这两个定义是为具有 16 位整数的机器编写的。这意味着 x1 的值可能非常令人惊讶,而 x2 的定义会导致编译时错误。
但是当我尝试使用 'Ideone.com' c++11 在线编译器编译以下内容时,它显示成功
#include <iostream>
using namespace std;
int main() {
// your code goes here
short i {999999};
std::cout<<"value of i = " << i;
return 0;
}
我期待编译错误。任何形式的帮助将不胜感激。