Why cant i have these two overload in a class?
<p>In the code below, if i comment out aaa or bbb it will compile. Why cant i have both?</p>

<pre><code>#include &lt;iostream&gt;

class MyClass
{
private:
    typedef void (MyClass::*aaa)() const;
    typedef void (MyClass::*bbb)() const;
    void ThisTypeDoesNotSupportComparisons() const {}
public:
    operator aaa() const { return (true) ? &amp;MyClass::ThisTypeDoesNotSupportComparisons : 0; }
    operator bbb() const { return (true) ? &amp;MyClass::ThisTypeDoesNotSupportComparisons : 0; }
};

int main()
{
    MyClass a;
    MyClass b;

    if(a &amp;&amp; b) {}
}
</code></pre>
