-ansi
即使带有and-pedantic
标志,这个程序在 GCC 下编译是否有充分的理由?
#include <cmath>
int main (int argc, char *argv [])
{
double x = 0.5;
return static_cast<int>(round(x));
}
这编译干净(甚至没有警告)与g++ -ansi -pedantic -Wall test.cpp -o test
.
我看到两个问题:
round()
不应该在符合 ISO 标准的模式下对 C++ 可用(因为它来自 C99)- 即使
round()
在这种情况下可用,也只能来自std
命名空间
我错了吗?