Namespaces (C++ only)
A namespace is an optionally named scope. You declare
names inside a namespace as you would for a class or an enumeration. You
can access names declared inside a namespace the same way you access
a nested class name by using the scope resolution (::)
operator. However namespaces do not have the additional features of
classes or enumerations. The primary purpose of the namespace is to
add an additional identifier (the name of the namespace) to a name.
To be compatible with GNU C, the compiler supports the visibility
attribute to namespaces.