Почему GCC позволяет использовать round () в C ++ даже с флагами ansi и pedantic?

Есть ли веская причина, почему эта программа компилируется в GCC даже с-ansi а также-pedantic флаги?

#include 

int main (int argc, char *argv [])
{
     double x = 0.5;

     return static_cast(round(x));
}

Это компилирует чистый (без предупреждений, даже) с.g++ -ansi -pedantic -Wall test.cpp -o test

Я вижу две проблемы:

round() не должен»быть доступным для C ++ в ISO-совместимом режиме (так как это происходит из C99)Даже еслиround() были доступны в этом случае, это должно быть только изstd Пространство имен

Я ошибся?

Ответы на вопрос(3)

Ваш ответ на вопрос