Результаты поиска по запросу "move-semantics"

6 ответов

Оператор присваивания и `if (this! = & Rhs)`

В операторе присваивания класса вам обычно нужно проверить, является ли назначаемый объект вызывающим объектом, чтобы вы ничего не испортили: Class& Class::operator=(const Class& rhs) { if (this != &rhs) { // do the assignment } return *this; ...

7 ответов

Является ли конструкция «передача по значению и перемещению» плохой идиомой?

Так как у нас есть семантика перемещения в C ++, в настоящее время это обычно делается void set_a(A a) { _a = std::move(a); }Причина в том, что еслиa является значением, копия будет удалена, и будет только один ход. Но что произойдет, еслиa ...

1 ответ

Ветвление операторов присваивания со значениями вместо ссылок

Этот вопрос возникает из вопросов, поднятыхэтот ответ [https://stackoverflow.com/a/9746772/734069]. Обычно мы определяем операторы копирования для типаT какT& operator=(const T&)и переместить операторы присваивания для типаT какT& ...

ТОП публикаций

3 ответа

Возвращаются местные жители автоматически xvalues

Исходя из комментария, который я сделал по этому поводу: передача std :: vector в конструктор и перемещение семантики [https://stackoverflow.com/questions/9963798/passing-stdvector-to-constructor-and-move-semantics] Этоstd::move необходимо в ...

1 ответ

Переместить семантику и примитивные типы

Пример кода: int main() { std::vector<int> v1{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; std::cout << "Printing v1" << std::endl; print(v1); std::vector<int> v2(std::make_move_iterator(v1.begin()), std::make_move_iterator(v1.end())); std::cout << "Printing ...

3 ответа

В чем преимущество использования универсальных ссылок в циклах для диапазонов?

const auto& было бы достаточно, если я хочу выполнять операции только для чтения. Тем не менее, я столкнулся с for (auto&& e : v) // v is non-constпару раз недавно. Это заставляет меня задуматься: Возможно ли, что в некоторых неясных угловых ...

1 ответ

Что стандартная библиотека гарантирует для самостоятельного перемещения?

Что стандарт C ++ 11 говорит о самостоятельном назначении перемещения по отношению к стандартной библиотеке? Чтобы быть более конкретным, что, если что-нибудь, гарантировано о чемselfAssign делает? template<class T> std::vector<T> ...

2 ответа

Требуется ли сохранить емкость при перемещении std :: vector?

Рассмотрим следующий код: std::vector vec; vec.reserve(500); size_t cap = vec.capacity(); std::vector newVec = std::move(vec); assert(cap == newVec.capacity());Практически в любой реализации, с которой вы столкнетесь, это будет работать. Меня не ...

3 ответа

Семантика перемещения и передача по R-значению в перегруженной арифметике

Я кодирую небольшую библиотеку числового анализа в C ++. Я пытался реализовать с использованием новейших функций C ++ 11, включая семантику перемещения. Я понимаю обсуждение и топ-ответ в следующем посте:C ++ 11 значения и путаница в семантике ...

1 ответ

Переместить конструктор и список инициализации

Я хочу реализовать конструкторы перемещения (без конструктора копирования) для определенного типа, который должен быть типом значения вboost::unordered_map, Давайте назовем этот типComposite. Composite имеет следующую подпись: struct Base { ...