namespace
composition if the project uses a separate
namespaceGtk-- defines
most of its classes in namespace Gtk::. Thus, it was possible to
adapt Gtk-- to namespace std:: by using a C++-feature called
namespace composition. This is what happens if
you put a using-declaration into a
namespace-definition: the imported symbol(s) gets imported into the
currently active namespace(s). For example:
namespace Gtk {
using std::string;
class Window { ... }
}
In this example, std::string gets imported into
namespace Gtk::.  The result is that you don't have to use
std::string in this header, but still
std::string does not get imported into
the global namespace (::) unless the user does
using namespace Gtk; (which is not recommended
practice for Gtk--, so it is not a problem).  Additionally, the
using-declarations are wrapped in macros that
are set based on autoconf-tests to either "" or i.e. using
std::string; (depending on whether the system has
libstdc++ in std:: or not).  (ideas from
llewelly@dbritsch.dsl.xmission.com, Karl Nelson
kenelson@ece.ucdavis.edu)
