Pourquoi std :: max et std :: min peuvent-ils encore être utilisés même si je n'ai pas #include & lt; algorithme & gt ;?

#include <iostream>

int main()
{
   int value1 = 1, value2 = 10;
   std::cout << "Min = " << std::min(value1,value2) <<std::endl;
   std::cout << "Max = " << std::max(value1,value2)<< std::endl;              
} 

Autant que je sache, le min et max fonctions sont définies dans <algorithm>.

Si je n'ai pas dit le pré-processeur pour inclure <algorithm> pourquoi le code fonctionne encore?

source d'informationauteur Anthony