wtlstl
namespace contains all components in the WTLSTL project.
By default, the wtlstl
namespace is actually an alias for the namespace stlsoft::wtlstl_project
, which is where all the WTLSTL components actually reside. This measure allows all components within the main the STLSoft project (which are defined within the stlsoft
namespace) to be visible to all components "within" the wtlstl
namespace. (Otherwise, there would be a whole lot of onerous qualification throughout the code of all sub-projects.)
_STLSOFT_NO_NAMESPACES
and _WTLSTL_NO_NAMESPACE
are defined, all WTLSTL components will be defined in the global namespace. Conversely, if the _STLSOFT_NO_NAMESPACE
symbol (not to be confused with the _STLSOFT_NO_NAMESPACES
symbol!) is defined - meaning that all main project components are to be defined in the global namespace, and _WTLSTL_NO_NAMESPACE
is not defined, then all WTLSTL components will be defined within a bona fide wtlstl
namespace.This is a vestige of compatibility with compilers with no (or no sensible) namespace support that is maintained for reasons of backwards compatiblity and because it is, in rare circumstances, a useful facility.