Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
Другие темы раздела
C++ При инициализации массива в отладке не попадаю в обработчик, поясните почему? http://www.cyberforum.ru/cpp-beginners/thread1789462.html
имеется два класса struct Integer { explicit Integer(int const &value) : value_(value) { } Integer() :value_(0)
C++ Простейший калькулятор Всем привет :) Это одна из самых первых моим программ в C++. Решил попробовать простейший калькулятор сделать с 4 функциями. Почему-то программа ругается на переменную "c", хотя вроде как под integer ее загнал... Помогите пожалуйста новичку-ньюфагу) #include <iostream> using namespace std; int main() { setlocale(0, ""); /*7*/ int a, b, d; // объявление двух переменных a и b целого... http://www.cyberforum.ru/cpp-beginners/thread1789442.html
C++ Getch - что не так делаю?
Всем привет. Не могу понять почему не выполняется getch() после верного ввода пункта. int name ::menu() { cout << "Выберите действие: " << endl; cout << " 1. Запись данных в файл " << endl; cout << " 2. Чтение из файла " << endl; cout << " 3. Поиск по номеру в файле " << endl; int pm =getch(); while (pm<1 || pm>3) {
Смещение курсора по консоли C++
Всем привет! Я работаю в программе dev c++. И мне нужна помощь,чтобы определенный символ я смог переместить в любое место консоли стрелочками. Буду благодарен за сайт, где это объясняется, и не откажусь от любой другой помощи:)
C++ Найти минимум в массиве используя наиболее оптимальный алгоритм http://www.cyberforum.ru/cpp-beginners/thread1789415.html
Дан массив чисел, надо найти минимум. Препод сказал - дополнительное задание: предложить наиболее оптимальный алгоритм, написать код, реализующий его идею, и обосновать его теоретически.
C++ Как передать указатель на файл в функцию? Здравствуй по ходу написания программы столкнулся с вопросом как передать указатель на тип файл в функцию. напишите код. Спасибо подробнее

Показать сообщение отдельно
Ferrari F1
Заблокирован
295 / 281 / 61
Регистрация: 27.01.2015
Сообщений: 1,889
Записей в блоге: 1
Завершенные тесты: 1
04.08.2016, 09:33     Ссылки на r-значения
Дарова!
Знакомлюсь с 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();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru