I'm new to move semantics, and I've been reading several resources that explain the correct way of defining a move constructor and assignment operator. All introductory material seems to use a class with a pointer member variable as examples. However I don't understand what to do with reference data members and class data members. For example:
Class A
{
(...)
private:
ClassB& reference_member;
ClassC object_member;
}
What should a move constructor and move assignment operator do, supposing that ClassB and ClassC are non-trivial classes (with several member variables that are too expensive to copy). I want to be able to move instances of A around effectively.