谁能向我解释一下,如果初始化程序可能导致信息丢失,为什么编译器允许初始化内置类型的变量?
例如 C++ Primer,第 5 版说,如果初始化程序可能导致信息丢失,编译器不会让我们列出内置类型的初始化变量。
a
但我的编译器 gcc v 4.7.1在以下代码中成功初始化了变量:
long double ld = 3.1415926536;
int a{ld};
只是警告:在 {} [-Wnarrowing] 内将 'ld' 从 'long double' 缩小到 'int' 的转换。