Czy powinienem używać kwalifikatorów referencyjnych lwartości dla operatorów przypisania?
Ostatnio przeprowadziłem dyskusję na temat przypisań do wyrażeń w C ++, jak pokazano w następującym przykładzie:
string s1, s2, s3;
(s1 + s2) = s3;
W C ++ 11 możliwe jest ograniczenie operatora przypisania do wartości referencyjnych (po lewej stronie). Deklarując operatorów przypisania w następujący sposób, kompilator Clang odrzuca kod z komunikatem o błędzie z powodu niezgodnych typów.
auto operator=(const string& rhs) & -> string&;
auto operator=(string&& rhs) & -> string&;
Nigdzie tego nie widziałem. Czy istnieje dobry powód, aby nie używać kwalifikatorów referencyjnych lwartości dla operatorów przypisania (poza brakującą obsługą w większości kompilatorów)?