Wenn ich bedenke, die beiden folgenden Überlastungen:universelle Referenz vs const Referenzpriorität?
template <class... T> void f(const T&... x);
template <class T> void f(const T& x);
ich die Garantie, dass f(x)
wird die zweite Funktion jederzeit anrufen und wird nie zu einer Mehrdeutigkeit führen. In gewissem Sinne ist die zweite Version universell priorisiert im Vergleich zu der ersten für ein Argument, unabhängig von ihrem Typ.
Betrachten wir nun die Situation, wo es eine universelle Referenz und eine konstante Referenz Versionen einer Funktion:
template <class T> void f(T&& x);
template <class T> void f(const T& x);
Meine Frage ist: ist ihr eine universelle Priorität zwischen diesen beiden Funktionen unabhängig von der Art von x (R-Wert Referenz, Referenz, CV-Qualifier, Zeiger ...) wie im vorherigen Fall? (und wenn ja, was ist die Priorität?)
Ich denke, es war [diese Diskussion] (http://www.youtube.com/watch?v=T5swP3dr190), die dies beinhaltete. – chris