When does the C++ default assignment operator become unaccessible?
<p>If I define an own assignment operator, which has a different signature than the normally generated default assignment operator:</p>

<pre><code>struct B;
struct A {
void operator = (const B&amp; b) {
    // assign something
}
};
</code></pre>

<p>does the default assignment operator, in this case <code>operator = (A&amp;)</code> (or the like, correct me if wrong) become undefined/unaccessible?</p>

<p>AFAIK this is true for the default constructor, which doesn't exist, if we define some other constructor.
But I am really not sure if this is the case for the other "magic" defaults.</p>

<p>The reason I ask: I want to avoid that the default copy constructor is accidently called via a implicit type conversion. If it doesn't exist, it could never happen.</p>
