Функция перегрузки для ссылок rvalue и lvalueC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Функция перегрузки для ссылок rvalue и lvalue

Сообщение Anonymous »

Предположим, у меня есть шаблонный класс

Код: Выделить всё

template 
struct Dummy {
// ...
};
И я хочу перегрузить функцию 'foo' так, чтобы она принимала ссылку на нее lvalue
или rvalue. Я могу сделать это, используя некоторую черту IsDummy
следующим образом:

Код: Выделить всё

template 
std::enable_if
foo(A &&dummy)
{
// ....
}
IIRC в некоторых проектах C++11 было законным

Код: Выделить всё

template 
foo(Dummy &&dummy)
{
// ....
}
принимает как ссылки lvalue, так и value-.
Теперь мои вопросы:
  • a) Верно ли, что это было разрешено в каком-то проекте?
  • b) Почему эта функция/ ошибка удалена? Кажется, я где-то читал, что это произошло из-за конфликта с "понятиями".
Однако не могу найти соответствующие ссылки для этого больше. У кого-нибудь лучшая память или закладки?

Подробнее здесь: https://stackoverflow.com/questions/126 ... references
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»