Yes, this is legal for a class that can be copied, but not accessible for moving:
class MyClass {
public:
MyClass(const MyClass&);
MyClass& operator= (const MyClass&);
MyClass(MyClass&&) = delete;
MyClass& operator= (MyClass&&) = delete;
};
However, I can’t come up with a good reason why someone would want to do this. Knowing C ++ encoders (like me!), I think you should expect this to happen.
Out of curiosity, which code do you rely on this will break if the class is copied but not moving?