Globals.h includes everything that is needed nearly everywhere, e.g., std::vector, std::string, std::ostringstream, etc. This is useful for rapid prototyping. Since also using declarations appear in Globals.h, non-predictable side effects show up in code that includes a header that, in turn, includes Globals.h somehow. For example, the identifier vector is already defined. Globals.h should be purified. Stroustrup 9.2.1 gives an explicit list of what should be used in a header file and what not. (using declarations do not show up in this list.)