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, but somewhere in a header you include is a macro called Stream, things will break. While compiling your code, the preprocessor…