In settings.h, the Settings class (containing only static variables) is encapsulated in an anonymous namespace. This makes the linker think of a distinct class for each compilation unit. As as result, settings changed in one .cpp file won't affect code from another .cpp file, although they should have global effect.
-- Summary: [parallel mode] Settings are separated for each compilation unit Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: singler at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34797