Por que o GCC permite o uso de round () em C ++, mesmo com as bandeiras ansi e pedantic?
Existe uma boa razão pela qual este programa compila sob o GCC, mesmo com o-ansi
e-pedantic
bandeiras?
#include <cmath>
int main (int argc, char *argv [])
{
double x = 0.5;
return static_cast<int>(round(x));
}
Isso compila limpo (sem avisos, mesmo) comg++ -ansi -pedantic -Wall test.cpp -o test
.
Eu vejo dois problemas:
round()
não deve estar disponível para o C ++ em modo compatível com ISO (já que ele vem do C99)Mesmo seround()
estavam disponíveis neste caso, só deveria ser a partir dostd
namespaceEstou errado?