January 2018
Intermediate to advanced
374 pages
9h 53m
English
In order to get rid of these problems, the rule of three was expanded to the rule of five.
To be specific, in addition to the copy-constructor and copy-assignment, we now also have move-constructor and move-assignment.
Instead of taking a const reference as a parameter, the move versions accept a Buffer&& object.
The && modifier indicates that the parameter is an object which we intend to move from instead of copying it. Speaking in C++ terms, this is called an r-value and we will talk a little bit more about those later.
Whereas the copy functions copy an object, the move equivalents are intended to move resources from one object to another, freeing the moved-from object from the resource.