Why it is useful to explicitly 'disable' or delete the = operator and copy constructor of a class:
SomeClass& operator=(SomeClass&) = delete;
SomeClass(SomeClass&) = delete;
I guess this makes sense if the class is a singleton. But are there any other situations? (Maybe this has something to do with performance issues?)