Есть ли веская причина, по которой эта программа компилируется под GCC даже с флагами -ansi
и -pedantic
?
#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()
не должен быть доступен для C ++ в режиме, совместимом с ISO (поскольку он исходит из C99)- Даже если
round()
были доступны в этом случае, это должно быть так только из пространства именstd
Я ошибся?