ts templates define two additional types.

<h4><tt>function_type</tt></h4>

<p>This is the type of the function or function object, and can be
used in declarations such as</p>

<blockquote><pre>
template &lt;class Predicate&gt;
class unary_negate : // ...
{
  // ...
  private:
    <strong>typename unary_traits&lt;Predicate&gt;::function_type</strong> pred;
};
</pre></blockquote>

<p>If this typedef were not provided, it would not be possible to
declare <tt>pred</tt> in a way that would allow
<tt><nobr>unary