По стандарту C++11 списковая инициализация должна запрещать сужение типа. Однако компилятор g++ (версия 4.8.1) без ошибок компилирует следующий код:
int main(int argc, char** argv)
{
double d = 1.234;
int i {d}; // здесь происходит сужение и потеря точности!
cout << i; // вывод: "1"
return 0;
}
Почему компилятор не выдает ошибку?
-Wall
как?