У меня довольно большое приложение, и я работаю без пространства имен std. Я заметил, что не включаю std::cos или std::sin, но получаю правильные результаты. Почему?
Примером урезанного кода может быть:
#include <ctime>
#include <cmath>
#include <iostream>
#include <vector>
//#include <unistd.h>
#include <fstream>
#include <sstream>
#include <iomanip>
using std::cout;
using std::endl;
int main()
{
double pi = 4*(atan(1));
cout << "pi = " << pi << endl
<< "cos(pi) = " << cos(pi) << endl
<< "sin(pi) = " << sin(pi) << endl;
return 0;
}
Я оставил все заголовки, я использую их все в основном коде. Вывод возвращает ~ 3,14, -1 и 1e-16, как и ожидалось. Почему это работает? потому что и грех в std не так ли?
Я использую компилятор g++ на удаленном сервере unix.
Спасибо