What's the difference between these three forms of syntax for calling a method?
<p>The following both call the function <code>T::f</code> on object <code>t</code>.</p>

<pre><code>1. t.f();
2. t.T::f();
3. (t.*&amp;T::f)();
</code></pre>

<p>I've seen the second one used where the other was not. What is the difference between these two and in what situation should one be preferred?</p>

<p>Thanks.</p>

<p><strong>EDIT</strong>: Sorry, I forgot about the second one <code>t.T::f()</code>. I added that one in.</p>
