luckyresistor.me
How and Why to Avoid Preprocessor Macros - Lucky Resistor
While most naming conflicts in C++ can be solved using namespaces, this is not true for preprocessor macros. Macros cannot be put into namespaces. If you try to declare a new class called Stream, b…