 types in the form of a boost::mpl
      forward sequence of types, and of an optional Boost FunctionTypes tag type.
      A typical boost::mpl forward sequence of types is a boost::mpl::vector&lt;&gt;.
    </p>
<p>
      The optional Boost FunctionTypes tag type may be used to specify cv-qualification.
      This means you can add 'const', 'volatile', or both by specifying an appropriate
      tag type. An alternate to using the tag type is to specify the enclosing type
      as 'const', 'volatile', or bot