I use scons to build a large project and finally found a line in the SConstruct file that caused a compilation error that I posted here previously: sstream redeclared with public access compiler error
Here is the line in the SConctruct file:
jailbreak_env = env.Clone(CPPDEFINES=[('protected','public'),('private','public')])
If you look at the link for the error message that complains redefining access specifiers in the sstream library, that error no longer comes up when I edited the SConstruct line like so:
jailbreak_env = env.Clone(CPPDEFINES=[])
However I cannot figure out how exactly this fix worked, or even how is it possible to change access specifiers in c++? I spent some time researching around SCons and I learned that Clone() simply creates a new "jailbreak version" of the program but by drastically changing the c++ compiler environment using the CPP_DEFINES variable. But the scons documentation (http://www.scons.org/doc/0.96.90/HTML/scons-user/a3061.html) for CPP_DEFINES does not mention being used to change access specifiers as shown above?
Any ideas or pointers for where I should look for an explanation are welcome.