It is not possible to add new features to an existing class to which you don't have source code. For example, you cannot add a new feature to the ostream class unless you have its source code. But anyone can add new features to any name space, simply by providing a namespace declaration. For example, you can add new features to the std namespace (even though it is not a good idea to do that, of course...)