The generator directives ns::lower[] and ns::upper[] force their embedded generators to
emit lower case or upper case only characters based on the interpretation
of the generated characters in the character set defined by ns (see Character
Encoding Namespace).

The lower[]
and upper[]
directives have no special generator semantics. They are pure modifier
directives. They indirectly influence the way all subject generators
work. They add information (the tag::upper
or tag::lower) to the Modifier
template parameter used while transforming the proto::expr
into the corresponding generator expression. This is achieved by the
following specializations:

The overall complexity of the generator directives ns::lower[] and ns::upper[] is defined by the complexity of its
embedded generators. The directives themselves are compile time only
directives, having no impact on runtime performance.