память или ограниченный ресурс, такой как дескриптор файла. Но необходимость передать их обратно пахнет скорее «плохим дизайном», чем «полезным ограничением».

рограммировании на C ++ 03 мы не можем передать безымянный временныйT() к функцииvoid foo(T&);, Обычное решение - дать временному имя, а затем передать его следующим образом:

T v;
foo(v);

Теперь идет C ++ 0x - и теперь со ссылками на rvalue функция, определенная какvoid foo(T&&) позволит мне пройти временный. Это подводит меня к моему вопросу: поскольку функция, которая принимает ссылку на rvalue, может принимать как ссылки на rvalue (безымянные временные ссылки), так и ссылки на lvalue (именованные неконстантные ссылки), есть ли какая-либо причина использовать ссылки lvalue в параметрах функции? Разве мы не должны всегда использовать значения r в качестве параметров функции?

Конечно, функция, которая принимает ссылку на lvalue,предотвращать звонящий от прохождения временного, но я не уверен, является ли это полезным ограничением.

Ответы на вопрос(0)

Ваш ответ на вопрос