Re[3]: специализация для rvalue ссылок
От: rg45 СССР  
Дата: 21.08.20 18:44
Оценка:
Здравствуйте, sergii.p, Вы писали:

SP>Здравствуйте, B0FEE664, Вы писали:


SP>оно конечно работает. Но теперь я ничего не понимаю Почему условия разные? Они получается не покрывают 100% случаев?


Тут фокус в том, что, поскольку Collection — шаблонный параметр, Collection&& — это особый вид ссылки, называемый forwarding reference. Эти ссылки "всеядны" в том смысле, что могут сопоставляться не только с rvalue ссылками, но и с lvalue. Благодаря своей всеядности функции с такими ссылками в параметрах способны выигрывать подстановку там, где это не ожидается. Для того, чтобы вторая прегрузка использовалась только для rvalue выкфжений, подстановку lvalue выражений нужно блокировать при помощи SFINAE, как показал B0FEE664.
--
Отредактировано 21.08.2020 19:07 rg45 . Предыдущая версия . Еще …
Отредактировано 21.08.2020 18:49 rg45 . Предыдущая версия .
Отредактировано 21.08.2020 18:45 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.