Why can I create cast operator to every class except self
<pre><code>struct B 
{

};

struct A
{
    operator A&amp;() const;
    operator B&amp;() const;
};


int main()
{
    const A a;
    B&amp; br = a;
    A&amp; ar = a;  
}
</code></pre>

<p>Why can I create cast operator to <code>B&amp;</code>, but not to <code>A&amp;</code>.</p>

<p>May be it does not have much sense (one can use it to erase <code>const</code> modifier, as in example), but it at least inconsistent!</p>
