Результаты поиска по запросу "copy-and-swap"

2 ответа

Что такое разрешение копирования и как оно оптимизирует идиому копирования и замены?

2 ответа

Как использовать noexcept в операторе присваивания с идиомой копирования и замены?

Оператор присваивания перемещения часто должен объявляться как noexcept (то есть для хранения типа в контейнерах STL). Но идиома копирования и замены позволя...

2 ответа

Что такое разрешение копирования и как оно оптимизирует идиому копирования и замены?

я читалКопировать и поменять [http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Copy-and-swap]. Я пытался прочитать некоторые ссылки на Copy Elision, но не мог понять, что это значит. Может кто-нибудь объяснить, пожалуйста, что это за ...

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

1 ответ

Когда перегрузка проход по ссылке (l-значение и r-значение) предпочтительнее передачи по значению?

Я видел, что сказано, что

3 ответа

Назначение перемещения несовместимо со стандартным копированием и обменом

Тестирование новой семантики Move. Я только что спросил о проблемах, которые у меня были с конструктором Move. Но, как выясняется в комментариях, проблема в том, что оператор «Назначение перемещения» и оператор «Стандартное назначение» ...

1 ответ

Когда перегрузка проход по ссылке (l-значение и r-значение) предпочтительнее передачи по значению?

Я видел, что сказано, чтоoperator= записанный для получения параметра одного и того же типа по значению служит как оператором копирования, так и оператором перемещения в C ++ 11: Foo& operator=(Foo f) { swap(f); return *this; }Где альтернатива ...

3 ответа

Назначение перемещения несовместимо со стандартным копированием и обменом

3 ответа

Должен ли идиома «Копировать и поменять» идиома «Копировать и переместить» в C ++ 11?

Как объяснено вэтот ответидиома копирования и замены реализована следующим образом:

2 ответа

 добавлено. Смотрите примечание в 3.3.1p4).

красном ответе накопирования и замены-идиомы [https://stackoverflow.com/questions/3279543/what-is-the-copy-and-swap-idiom#3279550] Вот кусок кода, который мне нужно немного помочь: class dumb_array { public: // ... friend void swap(dumb_array& ...

4 ответа

Это все равно что ожидать, что оператор + сложит все вместе. Возможно, его нет в Стандарте, но это ожидаемое и вежливое поведение, чтобы уничтожить то, что вы назначаете.

мер, stdlibc ++ имеет следующее: unique_lock& operator=(unique_lock&& __u) { if(_M_owns) unlock(); unique_lock(std::move(__u)).swap(*this); __u._M_device = 0; __u._M_owns = false; return *this; }Почему бы просто не назначить двух членов __u * ...