0

我在 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;
}

我期待编译错误。任何形式的帮助将不胜感激。

4

0 回答 0