Exceptions
Migrating a large project from an old, pre-ANSI/ISO implementation of the standard library (one that puts all of its symbols in the global namespace) to an updated one (where most everything is in namespace std ) might force you to carefully put a using directive in a header file. The way to do that is described in [Sutter02].