I am using header files which accompany two different third-party libraries...

Q

I'm using header files which accompany two different third-party libraries, and they are ``helpfully'' defining common macros such as TRUE, FALSE, Min(), and Max(), but the definitions clash with each other and with definitions I'd already established in my own header files. What can I do?

✍: Guest

A

This is indeed an annoying situation. It's a classic namespace problem;Ideally, third-party vendors would be conscientious when defining symbols (both preprocessor #defines and global variable and function names) to assure that namespace collisions were unlikely. The best solution is to get the vendor(s) to fix their header files.
As a workaround, you can sometimes undefine or redefine the offending macros between the conflicting #include directives.

2016-02-10, 584👍, 0💬