¿Debo usar los calificadores de referencia de valores para los operadores de asignación?

Recientemente, he seguido una discusión sobre las asignaciones a expresiones en C ++ como se muestra en el siguiente ejemplo:

string s1, s2, s3;
(s1 + s2) = s3;

Con C ++ 11 es posible restringir el operador de asignación a las referencias de valores (en el lado izquierdo). Al declarar los operadores de asignación de la siguiente manera, el Clang del compilador rechaza el código con un mensaje de error debido a tipos incompatibles.

auto operator=(const string& rhs) & -> string&;
auto operator=(string&& rhs) & -> string&;

No he visto esto en ninguna parte. ¿Hay una buena razón para no usar los calificadores de referencia de valor l para los operadores de asignación (además de faltar el soporte en la mayoría de los compiladores)?

Respuestas a la pregunta(3)

Su respuesta a la pregunta