Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1

Ссылки на r-значения

04.08.2016, 09:33. Показов 1821. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дарова!
Знакомлюсь с r-value reference и как то трудно получается полностью вникнуть в них.
Так, например, возникает ошибка в main, но ведь ссылка может выступать как l значение
C++
1
2
3
4
5
6
7
8
9
10
int&& func()
{
    int i(1);
    return i + 2;
}
 
int main()
{
    func() = 8;
}
Или даже так, все равно то же самое
C++
1
2
3
4
5
6
7
8
9
10
int&& func()
{
    int i(1);
    return std::move(i + 2);
}
 
int main()
{
    func() = 8;
}
Добавлено через 25 минут
Или вот еще вопрос, верно ли, что в этом коде не происходит лишних копирований, т.е.
1) сперва вызывается func
2) потом в func вычисляется значение выражения i + 2
3) по завершению вычисления создается временная безымянная переменная, которая хранит результат
4) эта безымянная переменная инициализирует параметр функции move
5) move возвращает r-value ссылку
6) func возвращает r value ссылку, полученную как результат move

7) в main результат вызова func в контексте инициализации интерпритируется как r-value типа int
8) x связывается с этим r-value
C++
1
2
3
4
5
6
7
8
9
10
int&& func()
{
    int i(1);
    return std::move(i + 2);
}
 
int main()
{
    auto&& x = func();
}
Добавлено через 3 минуты
еще 1 вопрос, почему компиль выдает варнинг в этом коде
warning C4172: возвращение адреса локальной или временной переменной
C++
1
2
3
4
5
6
7
8
9
10
int&& func()
{
    int i(1);
    return i + 2; // ИЗМЕНЕНИЯ ПРОИЗОШЛИ ЗДЕСЬ
}
 
int main()
{
    auto&& x = func();
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.08.2016, 09:33
Ответы с готовыми решениями:

operator= возврат значения и просто ссылки
Здорова господа! Снова пытаюсь чуток в С++ разобраться, с перегрузкой операций, снова ничерта непонятно. от допустим класс class...

Как лучше передавать значения в функцию? Ссылки vs указатели
Всем доброго времени суток. Уважаемые гуру, подскажите пожалуйста, как лучше передавать значения в функцию, через указатель или ссылку? И...

Возвращение ссылки на указатель использование её как левостороннего значения
Есть шаблон: //------------------------------------------------------- template<class T> struct ts { private: void* data; ...

21
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
04.08.2016, 20:04  [ТС]
Студворк — интернет-сервис помощи студентам
HelicopterK52, Липпман
https://www.ozon.ru/context/detail/id/26348781/
0
Игогошка!
 Аватар для ct0r
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
04.08.2016, 20:19
Ferrari F1, http://thbecker.net/articles/r... on_01.html
Если картина не прояснится, то бросай плюсы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.08.2016, 20:19

Запретить initializer-list конструктору принимать rvalue значения/ссылки
Здравствуйте! Опишу проблему из заголовка поста на примере... Допустим есть шаблонный класс с initializer-list конструктором: ...

Возвращение значения в функции, ссылки, вычислить корни квадратного уравнения
Определить функцию вычисления корней квадратного уравнения. Функция должна возвращать значение 1, если корни найдены, значение 0, если...

Главная функция (вводит некоторые значения и передает их и ссылки на некоторые переменные в функцию)
Написать главную функцию, которая вводит некоторые значения и передает их и ссылки на некоторые переменные в функцию. Получив результаты...

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

Работа с потоками, выполняющими методы принимающими значения ссылки
Ребята, как сделать так, чтобы можно было через делегат ParametrizedThreadStart можно было передавать параметр ссылку. Пример ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru