Я прочитал нижеследующий абзац в PDF: http://www.stroustrup.com/what-is-2009.pdf
уменьшение
Может быть, вы заметили, что я использовал инициализацию {} последовательно. Может быть, вы также подумали, что я убираю код и меня переполняет новая функция? Это, конечно, происходит, но я не думаю, что это так. Рассматривать:
int x1 = 64000; int x2 { 64000 };
Мы можем провести приятную дружескую дискуссию об эстетике этих двух определений, и вы можете даже указать, что для версии {} требуется еще одно нажатие клавиши, чем = one. Однако между этими двумя формами есть одно существенное различие, которое заставляет меня выбрать {}. Версия {} не допускает сужения, и я не смог вам сказать, что два определения были написаны для машины с 16-битными целыми числами. Это означает, что значение x1 может быть очень удивительным, тогда как определение x2 вызывает ошибку во время компиляции.
Но когда я попытался скомпилировать следующее с помощью онлайнового компилятора c ++ 11 ‘Ideone.com’, он показал успех
#include <iostream>
using namespace std;
int main() {
// your code goes here
short i {999999};
std::cout<<"value of i = " << i;
return 0;
}
Я ожидал ошибки компиляции. Любая помощь будет оценена.
Задача ещё не решена.
Других решений пока нет …