Visual Studio видит math.h, хотя я не подключал. C++

Я думаю, у многих проблема в том, что заголовочные файлы visual studio не видит. У меня наоборот. Видит, то что я не хотел. Произошло это после обновления на новую версию.

#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
    long long a1, a2, a3, a4;
    cin >> a1 >> a2 >> a3 >> a4;
    cout << (int)sqrt(min(a1, a2) + min(a3, a4));
}

Данный код работает, хотя не должен: функция sqrt() не должна быть определена так, как я не подключил math.h. Хотя если отключить допустим algorithm, то функцию min() он не видит.

В чем может быть проблема? Я в настройках проекта вроде ничего не менял.

основные настройки компоновщика дополнительные


Ответы (1 шт):

Автор решения: Harry

Видите ли, в стандарте оговорено, что должно содержаться в том или ином заголовочном файле, а не чего в нем не должно быть.

Поэтому в конкретном компиляторе один заголовочный файл может потянуть другой. Что не отменяет необходимости для переносимости включать нужный файл...

→ Ссылка