Primer说错误,但代码在GCC上工作正常

时间:2017-11-12 10:17:15

标签: c++ c++11

此代码可以正常工作:

CASE

这是我遗失的东西吗?对于我,当float / double被赋给int时,打印小数点左边的值(floor值)。 Primer说错误。

2 个答案:

答案 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应生成警告。