It looks like abs is not being replaced with prohibited during preprocessing ... why?
At least the standard library headers that I use (libstdc ++) that define ::abs , undefine your macro:
// Get rid of those macros defined in <math.h> in lieu of real functions.
Your headlines can do the same. Given such an indefinite definition, it is really impossible to prohibit such a function using a preprocessor macro.
source share