A namespace is an optionally-named declarative region.
The name of a
namespace can be used to access entities declared in that namespace;
that is, the members of the namespace.
Unlike other declarative regions,
the definition of a namespace can be split over several parts of one or
more translation units.