Сужающие преобразования в C ++ 0x. Это только у меня, или это звучит как критическое изменение?

C ++ 0x сделает следующий код и аналогичный код некорректным, потому что для этого требуется так называемое сужающее преобразование из ] double в int .

int a[] = { 1.0 };

Мне интересно, часто ли этот вид инициализации используется в реальном коде. Сколько кода будет нарушено этим изменением? Сложно ли исправить это в вашем коде, если он вообще затронут?


Для справки см. 8.5.4 / 6 из n3225

Сужающее преобразование - это неявное преобразование

  • из числа с плавающей точкой. точечный тип в целочисленный тип, или
  • от long double до double или float, или от double до float,
82
задан Johannes Schaub - litb 3 October 2011 в 13:14
поделиться