Я вижу два разных результата, играя со списком инициализаторов {} и примитивными типами в C ++.
Я ухожу только с предупреждением сужение преобразования d из двойного в int внутри {}
double d {3.0};
int integer {d};
Но если я сделаю это более явным, то вместо предупреждения я получу ошибку , сужающую преобразование '3.0e + 0' из 'double' в 'int' внутри {}
int integer {3.0};
Разве C ++ 11 не должен предотвращать сужающее преобразование в обоих случаях, если используется {}? Тогда почему это происходит только в одном случае?
Я использую последнюю версию Eclipse для C / C ++ с MingGW. Есть ли вероятность того, что C ++ 14 случайно появился на пути?