Если у вас есть шаблоны и ссылки, вы можете получить такие типы, как T & &&
, которые сворачиваются в соответствии с некоторыми правилами . По сути, все сворачивается до T&
, за исключением T && &&
, который сворачивается до T&&
Что является реальным примером, когда срабатывает случай && &&
?
Я нашел один искусственный пример :
template <typename T> void func(T&& a);
auto fp = func<int&&>;
Но в моих исследованиях до сих пор я не понимал, когда этот случай реально возникает.