Когда взираю я два следующих перегрузок:универсальный опорный параметр vs const?
template <class... T> void f(const T&... x);
template <class T> void f(const T& x);
У меня есть гарантия, что f(x)
всегда будут вызывать вторую функцию и никогда не приведут к неоднозначности. В некотором смысле вторая версия является общепринятой по сравнению с первой для одного аргумента независимо от его типа.
Теперь рассмотрит ситуацию, когда есть универсальный справочник и константная ссылка версия функции:
template <class T> void f(T&& x);
template <class T> void f(const T& x);
Мой вопрос: является их универсальным приоритет между этими двумя функциями, независимо от типа х (r-value reference, reference, cv-qualifiers, указатель ...), как в предыдущем случае? (и если да, то какой приоритет?)
Я думаю, что это был [этот разговор] (http://www.youtube.com/watch?v=T5swP3dr190), который включил это. – chris