此代码可以正常工作:
CASE
这是我遗失的东西吗?对于我,当float / double被赋给int时,打印小数点左边的值(floor值)。 Primer说错误。
答案 0 :(得分:4)
这是我遗失的东西吗?
偏离标准的编译器的不幸细节。 GCC不会强制执行它,除非你告诉它它应该。尝试使用-pedantic-errors
选项进行编译。
引物没有错,根据C ++标准,这是一个不正确的程序。但编译器可能会选择接受它作为扩展,这就是GCC所做的。
答案 1 :(得分:0)
一些编译器(正确地)默认强制执行它。例如,MacOSX clang会返回错误:
type 'double' cannot be narrowed to 'int' in initializer list [-Wc++11-narrowing]
对于GCC,选项-Wconversion
应生成警告。