if default copy constructor provider by compiler only make a shallow copy(copy the pointer of a member in heap to target object's corresponding member field), what is the difference between default copy constructor and default move constructor?
I think default move constructor should not be more more efficient than default copy constructor, as no deep copy happened. Am I right?