#include <iostream>
int main() {
std::cout << abs(-5.3) << "\n";
}
При компиляции с g ++ он печатает 5, что я получаю - перегруженный abs лежит в std
, и я не использовал его.
Но если я использую компилятор Visual Studio (19.14.26433), результат равен 5.3.
Если я добавлю std
, у VS нет вопросов, g ++ требует cmath
.
То же самое относится и к system
: system("foo")
, например.Нет проблем с компилятором VS, но g ++ снова требует std
.
И это не подразумевается using namespace std
в VS, так как другие функции (например, cout
) не будут компилироваться без std
.
Итак, есть ли какие-то специальные функции, которые компилятор VS включает в std
по умолчанию?Список их где-нибудь есть?Или здесь что-то еще происходит?