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

Lvalue и rvalue - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как сделать проверку нажатия по спрайту хаотичной формы? http://www.cyberforum.ru/cpp/thread1772858.html
Игра в изометрии на SDL , и встаёт вопрос как сделать проверку нажатия(мышкой) на объект (например кровать) и совершить действия при нажатии(например спать)
C++ Нужна программа для перехвата клика мыши Стоит задача: Когда я нажимаю ЛКМ нужно, чтобы программа перехватила это нажатие, и нажала лишь когда истечет определенное кол-во времени. pseudo_code: if(GetAsyncKeyState(0x01)) { перехват мыши; Sleep(time); клик; } Буду очень благодарен http://www.cyberforum.ru/cpp/thread1772607.html
Неявные интерфейсы С++ шаблонов. Сложно о простом C++
Неявные интерфейсы С++ шаблонов. Сложно о простом. Вот заметка в формате PDF о том, как использовать типизацию для параметров шаблонов. Отдельные утверждения из заметки процитирую, не влезет сюда весь текст: - Этот пример страдает проблемой дизайна С++ классов, которую в общем и кратко можно описать как "наследование используется не для реализации интерфейса". - Почему происходит...
C++ Как написать браузер под Windows?
Здравствуйте. Подскажите пожалуйста, как можно написать браузер на C++? Можно не с нуля. Может ли это сделать человек, без особой практики C++, но знающий его основы? Требуется написать браузер под Windows. Буду рад советам, исходникам и т.д. Интересует не на движке IE. Заранее благодарен.
C++ Рекурсивные функции. Разделение эл. массива, пока не останется 1 элемент http://www.cyberforum.ru/cpp/thread1771720.html
Вся суть в том что нужно взять массив из 10 элементом и разделить его на пополам (например от 1 до 5 и от 6 до 10) потом левую часть которая (от 1 до 5) снова разделить на 2 части (например, от 1 до 3 и от 4 до 5) и так пока не останеться 1 число. Когда оно остаётся необходимо вычислить синус этого числа. Фишка в том что неоходимо все части так вычислить 1-2-3-4-5/6-7-8-9 1-2-3/4-5/6-7/8-9...
C++ Не могу скомпилировать сорс с github Скачал отсюда https://github.com/AmirAfendin/SPM исходник, но скомпилировать его никак не получается. Кто разбирается помогите. P.S. там надо заменить 1 строку, что бы заработала, но разработчик забил на прогу подробнее

Показать сообщение отдельно
elch10
38 / 21 / 4
Регистрация: 27.04.2015
Сообщений: 164
Завершенные тесты: 2

Lvalue и rvalue - C++

30.06.2016, 13:27. Просмотров 337. Ответов 5
Метки (Все метки)

Какая выгода использования rvalue? Допустим есть такой класс
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class A
{
public:
    A() = default;
    void setName(const std::string& name)
    {
        m_Name = name;
    }
 
    void setName(std::string&& name)
    {
        m_Name = std::move(name);
    }
private:
    std::string m_Name;
};
и main
C++
1
2
3
4
5
6
7
8
int main()
{
    A a;
    std::string name{"another name"};
    a.setName("New name");//№1
    a.setName(name);//№2
    return 0;
}
Какая выгода использования rvalue? Ведь при использовании по ссылке, не вызываются никакие конструкторы копирования и т.д. И мы просто копируем данные. А при перемещении мы копируем из источника, а потом удаляем данные из источника. Так и какая здесь выгода, если удаление строки и так произойдёт, только сразу же после выхода из функции. Я имею ввиду что если мы уберём функцию с rvalue
C++
1
2
3
4
void setName(std::string&& name)
    {
        m_Name = std::move(name);
    }
и будем использовать lvalue версию с rvalue, вот так
C++
1
a.setName("New name");
Или я что то не понял?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru