tgoop.com/cppproglib/4955
Create:
Last Update:
Last Update:
😱 Что такое склейка ссылок?
В старом стандарте (до C++11) если при разворачивании шаблона получался тип, который являлся ссылкой на ссылку было ошибкой. В новом стандарте появились правила склейки
❗ Правила склейки
В том случае если при разворачивании шаблона возникает двойная ссылка, например l-value ссылка на l-value ссылку, то получаем обычную ссылку (T& & -> T&):
• T& & -> T&
• T& && -> T&
• T&& & -> T&
• T&& && -> T&&
❗Правила склейки позволяют определить универсальную ссылку
Универсальная ссылка — это аргумент функции, которая передаётся как r-value, при этом его тип является параметром шаблона
❗Она позволяет работать как с r-value, так и с l-value ссылками
template
void func (T&& t) {}
• Если вызвать func с l-value типа A, то тип T будет выведен как ссылка A&
• Если вызвать func с r-value типа A, то тип T будет выведен как A
BY Библиотека C/C++ разработчика | cpp, boost, qt

Share with your friend now:
tgoop.com/cppproglib/4955