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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Heisenberg
44 / 45 / 3
Регистрация: 11.08.2010
Сообщений: 226
#1

[C++11] move\rvalue ref semantic - C++

23.03.2014, 18:34. Просмотров 315. Ответов 3
Метки нет (Все метки)

Перегрузил оператор присвоения используя move\rvalue ref semantic.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    /**
     * Copy operator
     * @param rhs Right hand side argument of binary operator.
     */
    Vector3<T> operator=(const Vector3<T>& rhs)
    {
        x = rhs.x;
        y = rhs.y;
        z = rhs.z;
        return *this;
    }
 
    /**
     * Move operator
     * @param rhs Right hand side argument of binary operator.
     */
    Vector3<T> operator=(Vector3<T>&& rhs)
    {
        x = rhs.x;
        y = rhs.y;
        z = rhs.z;
        return *this;
    }
Но по прежнему работает оператор копирования, проверял это делая вывод в обоих перегрузках оператор присвоения. Если убрать первую перегрузку (copy operator), то move operator все ровно не будет работать, в дебаге так же break point-ы ставил
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2014, 18:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос [C++11] move\rvalue ref semantic (C++):

Move Semantic - будет ли утечка? - C++
Есть класс class ChannelsScaleDraw { public: void updateLabelsBuffer(const std::vector&lt;QString&gt; &amp;labels) { ...

std::move, rvalue reference - C++
Здравствуйте! Недавно начал разбираться с новыми способами передачи аргументов. Прочитал около 10 статей, некоторые на русском, некоторые...

Rvalue ref как параметр функции. Странности с оптимизацией - C++
Дана одна безумно сложная, запутанная и непонятная функция:int f2(int&amp;&amp; a) { a = 6; return 4; } которая компилируется...

rvalue - C++
добрый вечер. интересно ваше мнение. значит ли появление rvalue reference в новом стандарте то, что теперь локальным объектам зеленый свет....

Rvalue ссылки - C++
Литературу читаю, но доезжаю медленно(если знаете где доступно описано- напишите),тяжело болею умственной анорексией. 1.Так вот о...

Почему *(a+j) не rvalue? - C++
Запись массива вида a - это lvalue и эквивалентна *(a+j), но почему *(a+j) не rvalue, потому что сумма a+j должна была бы быть rvalue, но...

3
Croessmah
Эксперт CЭксперт С++
13416 / 7570 / 855
Регистрация: 27.09.2012
Сообщений: 18,638
Записей в блоге: 3
Завершенные тесты: 1
23.03.2014, 18:37 #2
Цитата Сообщение от Heisenberg Посмотреть сообщение
Но по прежнему работает оператор копирования
где?
0
Heisenberg
44 / 45 / 3
Регистрация: 11.08.2010
Сообщений: 226
23.03.2014, 18:53  [ТС] #3
В конструкторе класса Data

C++
1
2
3
4
5
6
7
    Data(Vector3<float> const& position, Vector2<float> const& rotation)
    {
        buffer = 0;
 
        m_position = position;
        m_rotation = rotation;
    }
0
Jupiter
Каратель
Эксперт С++
6556 / 3977 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.03.2014, 19:31 #4
C++
1
2
3
4
5
6
7
Data(Vector3<float> position, Vector2<float> rotation)
    {
        buffer = 0;
 
        m_position = std::move(position);
        m_rotation = std::move(rotation);
    }
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2014, 19:31
Привет! Вот еще темы с ответами:

Rvalue vector - C++
Как это? vector&lt;int&amp;&amp;&gt; v = {0,0,0};// Это не скомпилируется (Вектор, якобы, хранит rvalue) vector&lt;int&gt; &amp;&amp;rval_vec = v; //Это не...

Непостижимый rvalue - C++
Код// тестирование с чтением из потоков void stream_io_test( std::istream&amp; in, std::ostream&amp; out ); // тестируем, вводя числа из...

Lvalue и rvalue - C++
Какая выгода использования rvalue? Допустим есть такой класс class A { public: A() = default; void setName(const...

Rvalue reference - C++
#include &lt;iostream&gt; std::string get_string() { return std::string(&quot;12345&quot;); } int main() { std::string const&amp; str =...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
23.03.2014, 19:31
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru