Mehrdeutigkeit beim Aufruf der Funktion. Implizite Konvertierung?

8
%Vor%

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.

    
J. Doe 08.01.2016, 21:40
quelle

1 Antwort

4

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.

    
M.M 08.01.2016, 22:21
quelle