C++11 introduced the ability to "ref-qualifier" methods. The most known qualifier is the const one:
however now is also possible to ref-qualify *this
let see how this can be of any use. Immagine to have a factory building heavy objects and
returning them by copy this way:
in the following scenario we can avoid an useless copy:
we can avoid the copy if Jumbo is movable overloading the method getJumboByCopy in case
the object on which I'm calling it is a temporary:
To be honest the example shows a scenario with other problems than the one mentioned (for instance
if the object Jumbo is so big why permitting the copy then?) but I hope you got the idea.