
Folks I have a large amount of code that generates warnings of the kind: t.cpp:6: warning: shadowing built-in function `double std::acos(double)' Actually many thousands of these warnings when building with g++ -Wshadow :-( Normally I would just fix the code, but in this case I don't see how, I have code that looks like: #include <cmath> template <class T> T f(T v) { // We want acos found via ADL in case T is a class type: using std::acos; return acos(v); } int main() { f(2.0); return 0; } Which just on it's own produces: $ g++ -I. -Wall -Wshadow -c t.cpp 2>&1 | less t.cpp: In function `void f(T)': t.cpp:6: warning: shadowing built-in function `double std::acos(double)' t.cpp: In function `void f(T) [with T = double]': t.cpp:12: instantiated from here t.cpp:6: warning: shadowing built-in function `double std::acos(double)' t.cpp:12: instantiated from here But I can't see any other way to code this... certainly using a "using namespace std;" in place of the "using std::functionname;" is *not* a valid fix (it can lead to lookup ambiguities). Any ideas folks? Thanks, John.