Я переопределил некоторые математические функции (так, чтобы они были быстрее, т. Е. Менее точными, или использовать шаблоны). Я помещаю эти функции в пространство имен, и они работают нормально.
Однако часто случается, что я забываю вызывать функции из своего пространства имен (т.е. внизу моего файла математического заголовка, но это решение не кажется таким уж хорошим: оно полностью нарушает цель пространств имен; Я бы предпочел явным образом сказать, использовать ли функцию из mymath
или из std
, чтобы я был вынужден выбирать между более точной или более точной функцией без риска забыть об этом.
РЕДАКТИРОВАТЬ :
Многие ответы говорят, что если я использую cos
из глобального пространства имен (без использования std
или mymath
) , и включить cmath
(а не math.h
), компиляция должна завершиться ошибкой.
Я не знаю, что об этом говорится в стандарте, но:
#include <cmath>
int main( ) {
cos( M_PI );
return 0;
}
компилируется нормально с GNU GCC ( g ++
) 4.5.1 (и более ранними версиями).