If I define an own assignment operator, which has a different signature than the normally generated default assignment operator:
struct B;
struct A {
void operator = (const B& b) {
// assign something
}
};
does the default assignment operator, in this case operator = (A&)
(or the like, correct me if wrong) become undefined/unaccessible?
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.
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.