Dieser Code verursacht eine Mehrdeutigkeit und ich weiß nicht warum, vielleicht habe ich explizite Konvertierung in rvalue Referenz gemacht.
Meine Idee ist, dass der rvalue Verweis implizit in nur lvalue konvertiert werden kann. Aber ich bin mir nicht sicher. Bitte erläutern.
std::string
kann aus einem rvalue vom Typ std::string
initialisiert werden. Also die zweite Funktion ist ein Kandidat.
Es ist keine machbare Idee, Überladungen von Werten und R-Werten zu haben. Ein normaleres Setup besteht darin, rvalue-reference und lvalue-reference overloads zu verwenden:
%Vor%Dies würde alle Anwendungsfälle abdecken.
Tags und Links c++ c++11 overload-resolution move-semantics