Выбор ответа Senior Move-семантика обновлено

Схлопывание ссылок

Вопрос

Какой тип получится при using T = int&; для T&&?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: int&. Правило схлопывания: если среди ссылок есть lvalue-ссылка, результат lvalue-ссылка; && && даёт &&. int& && превращается в int&. - int&& получилось бы только из int&& &&. - Ссылка не исчезает. - Через псевдонимы типов и шаблоны «ссылка на…

Варианты ответа

  1. int&&
  2. int&правильный ответ
  3. int
  4. Ошибка компиляции: ссылка на ссылку

Разбор

Правило схлопывания: если среди ссылок есть lvalue-ссылка, результат lvalue-ссылка; && && даёт &&. int& && превращается в int&.

  • int&& получилось бы только из int&& &&.
  • Ссылка не исчезает.
  • Через псевдонимы типов и шаблоны «ссылка на ссылку» разрешена именно благодаря схлопыванию.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.