谁能给我解释一下,如果初始化器可能导致信息丢失,为什么编译器允许初始化内置类型的变量?例如C++Primer,第5版说,如果初始化器可能导致信息丢失,编译器不会让我们列出内置类型的初始化变量。但是我的编译器gccv4.7.1在以下代码中成功初始化了变量a:longdoubleld=3.1415926536;inta{ld};只是警告:在{}[-Wnarrowing]中缩小从“longdouble”到“int”的“ld”转换。 最佳答案 初始化列表的一个特点是不允许缩小转换。但是语言定义不区分警告和错误;当代码格式错误时,它需要“诊断