Какое слово канонически используется для упоминания контрольного слияния - PullRequest
0 голосов
/ 27 апреля 2018

В C ++ существует механизм, который объединяет ссылки в некоторых контекстах шаблона и для указателей на функции. void (*)() эквивалентно void().

Я пытался гуглить, но без фактического термина это невозможно.

1 Ответ

0 голосов
/ 27 апреля 2018

Я только что нашел это !! это называется reference collapsing

c.f. https://isocpp.org/blog/2012/11/universal-references-in-c11-scott-meyers

void f(int& && param);           // initial instantiation of f with lvalue

Из-за ссылки на этот экземпляр этот экземпляр является основным facie неверно, но исходный код - «f (x)» - вполне разумен. Чтобы избежать его отклонения, C ++ 11 выполняет «свертывание ссылок», когда ссылки на ссылки возникают в таких контекстах, как шаблон конкретизация .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...