Perfect Forwarding - вопрос о постоянных и неконстантных ссылках - PullRequest
0 голосов
/ 29 января 2019

Посмотрите на эту статью http://thbecker.net/articles/rvalue_references/section_07.html. Мы можем найти там это предложение:

Во-первых, если у фабрики был не один, а несколько аргументов, вам пришлось бы предоставлять перегрузки для всех комбинаций.неконстантных и константных ссылок для различных аргументов.

Мой вопрос заключается в том, почему мы должны предоставлять перегрузку для комбинации неконстантных и константных ссылок?По моему мнению, нам нужно обеспечить перегрузку только для константных ссылок, потому что мы можем передавать как значения rvalue, так и lvalue в ссылку const.

1 Ответ

0 голосов
/ 29 января 2019

Если функция, на которую вы перенаправляете, принимает const, то вам нужно передать ссылку на const.Если значение, которое вы пересылаете, является неконстантным, то вам нужно передать неконстантное значение, потому что вам нужно будет перенаправить в неконстантную функцию.

...