Результаты поиска по запросу "rvalue-reference"
Как избежать копирования, когда я вернусь
У меня есть функция, которая возвращает вектор или набор:
Понятно, спасибо за разъяснения. Да, эти два варианта выглядят эквивалентно мне.
е следующее: struct vec { int v[3]; vec() : v() {}; vec(int x, int y, int z) : v{x,y,z} {}; vec(const vec& that) = default; vec& operator=(const vec& that) = default; ~vec() = default; vec& operator+=(const vec& that) { v[0] += that.v[0]; v[1] ...
Является ли конструкция «передача по значению и перемещению» плохой идиомой?
Так как у нас есть семантика перемещения в C ++, в настоящее время это обычно делается void set_a(A a) { _a = std::move(a); }Причина в том, что еслиa является значением, копия будет удалена, и будет только один ход. Но что произойдет, еслиa ...
Переходить от * this в методе rvalue?
В C ++ 11 методы могут быть перегружены в зависимости от того, является ли выражение, обозначающее объект, для которого вызывается метод, lvalue или rvalue. ...
Перегрузка оператора C ++ для указателей
Интересно (просто из любопытства), почему перегрузка операторов неt разрешено в C ++ для указателей. Я имею в виду что-то вроде этого:
Возвращаемое значение или ссылка на значение?
В новой книге Скотта Мейера он предлагает пример использования ссылочных квалификаторов rvalue, который выглядит примерно так:
Какой тип объявить, чтобы избежать копирования и убедиться, что возвращаемое значение перемещено
Предположим, что У меня есть функцияA f();Я хочу инициализировать локальную переменнуюa к возвращаемому значениюf;Я не хочу полагаться на RVO;Каков наилучший вариант (и почему), чтобы избежать возвращаемого значенияf копируется, когда a ...
Ссылка на C ++ 11 также вызывает конструктор копирования
Я тестировал некоторые функции C ++ 11 из некоторых. Я наткнулся на ссылки r-значения и конструкторы перемещения. Я реализовал свой первый конструктор перемещения, вот он: #include <iostream> #include <vector> using namespace std; class ...