Quel est le but des fonctions membres réf.?

Lors de la lecture de http://fr.cppreference.com/w/cpp/language/member_functions , je suis tombé sur quelque chose que je n’avais jamais vu auparavant: lvalue/rvalue Ref-qualified member functions : lvalue/rvalue Ref-qualified member functions . Quel serait leur but?

Il suffit de lire ci-dessous:

Pendant la résolution de surcharge, la fonction membre non qualifiée cv de la classe X, qualifiée de cv, est traitée comme une fonction prenant un paramètre implicite de type lvalue, référence à cv-qualifiée X, si elle n’a pas de qualificatif ref ou si elle a le qualificatif lvalue ref . Sinon (si elle a rvalue ref-qualifier), elle est traitée comme une fonction prenant un paramètre implicite de type rvalue reference à X qualifié cv.

Exemple

 #include  struct S { void f() & { std::cout << "lvalue\n"; } void f() &&{ std::cout << "rvalue\n"; } }; int main(){ S s; sf(); // prints "lvalue" std::move(s).f(); // prints "rvalue" S().f(); // prints "rvalue" } 

Ainsi, lors de la résolution de surcharge, le compilateur recherche la fonction & -qualified si l'object appelant est une valeur lvalue ou la fonction && lvalue si l'object appelant est une valeur rvalue .