don't shadow functions with macros in C++