C++ "<", not less than operator?
<p>In the following code for a binary search tree:</p>

<pre><code>template &lt;class TKey&gt;
class bst&lt;TKey&gt;::node *bst&lt;TKey&gt;::insert(node *T, TKey &amp;key)
{
if (T == NULL) {
  T = new node;
  T-&gt;key = key;
} else if (T-&gt;key == key) {
  cout &lt;&lt; "key " &lt;&lt; key &lt;&lt; " already in tree" &lt;&lt; endl;
} else {

    int dir = T-&gt;key &lt; key;
    T-&gt;link[dir] = insert(T-&gt;link[dir], key);

}

return T;
}
</code></pre>

<p>I'm confused what the line</p>

<pre><code>int dir = T-&gt;key &lt; key;
</code></pre>

<p>is doing. I could understand "int dir = T->key", although of course that wouldn't make sense, but I've not seen the "&lt;" operator used in that way before. Any clues?</p>
