11
ответов

Передача по ссылке const или использование семантики перемещения [дубликат]

Раньше мне учили, что при передаче std :: string в функцию или даже в конструктор для передачи по ссылке const вместо передачи по значению из-за копирования. пример 1: - параметр функции void ...
вопрос задан: 20 April 2012 01:47
6
ответов

Что такое семантика перемещения?

Я только что закончил слушать радио-интервью подкаста Software Engineering со Скоттом Мейерсом о C ++ 0x. Большинство новых функций имело смысл для меня, и сейчас я действительно взволнован C ++ 0x, ...
вопрос задан: 12 May 2019 09:30
4
ответа

Передача ссылки rvalue в аргументе функции [duplicate]

При передаче ссылки rvalue (Movable & amp; a) в функцию Movable b (a) каким-то образом запускает созданный конструктор удаленной копии. main.cpp: В функции 'void func (Movable & amp;)': main.cpp: 25: ...
вопрос задан: 26 September 2012 17:47
3
ответа

Перемещение ctor и перемещение dtor

Как я попросил в конструкторе/операторе Перемещения =, и через некоторое время я согласовал и признал, что право отвечает на тот вопрос, я просто думал, если будет он быть полезным иметь что-то как "перемещение...
вопрос задан: 23 May 2017 12:23
3
ответа

Rvalue-ness типа & amp; & amp; переменные в C ++ [дубликат]

Меня смущает тип переменных rvalue в C ++. Код ниже дает мне следующую ошибку ошибки компилятора: не может связывать ссылку rvalue типа 'int & amp; & amp;' с lvalue типа 'int' f1 (b); ...
вопрос задан: 17 September 2015 00:20
3
ответа

Нужно ли определять конструктор перемещения для класса только с элементами примитивного элемента, отличного от указателя? [Дубликат]

Скажем, что у меня есть этот класс, например: #include & lt; cstdint & gt; class Color {private: uint8_t red_; uint8_t green_; uint8_t blue_; public: Color (); Цвет (uint8_t красный, uint8_t ...
вопрос задан: 18 June 2012 18:23
2
ответа

Стек может иметь надежный метод исключения для возврата и удаления вершины с семантикой перемещения?

В ответе на вопрос о станд.:: стек:: поп () я утверждал, что причина, поп не возвращает значение, из соображения безопасности исключения (что происходит, если конструктор копии бросает). @Konrad...
вопрос задан: 23 May 2017 11:53
2
ответа

Переместить опорную перегрузку для доступа к элементу в контейнерах? [Дубликат]

Контейнеры STL имеют две перегрузки для оператора [], одну константу и одну неконстантную и две соответствующие typedef. шаблон & lt; class T & gt; struct vector {T * data_; используя value_type = T; ...
вопрос задан: 27 March 2015 23:26
2
ответа

Переместите конструкторы и `std :: array`

Согласно N3485 §23.3.2.2: (...) неявный конструктор перемещения и оператор присваивания перемещения для массива требуют, чтобы T было MoveConstructible или MoveAssignable, соответственно. Итак, std :: array ...
вопрос задан: 24 March 2014 15:45
1
ответ

Что такое std :: move () и когда его следует использовать?

Что это? Что оно делает? Когда его следует использовать? Хорошие ссылки приветствуются.
вопрос задан: 5 April 2019 05:05
1
ответ

Как назвать & ldquo; переместить? '& Amp; & Amp;' конструктор в базовом классе? в C ++ [дубликаты]

У меня есть класс, содержащий указатели на объекты и его подкласс. Конструктор перемещения «подкласс» Я хочу вызвать конструктор перемещения базового класса по понятным причинам. С компилятором MSVS 2017 это ...
вопрос задан: 16 January 2019 15:47
1
ответ

C ++ 11 ссылочная адресация rvalue

Я пытаюсь понять семантику перемещения c ++ 11 и создал следующий проект песочницы: main.cpp #include "my-class.h" #include & lt; iostream & gt; MyOtherClass getRValue (void) {MyOtherClass ...
вопрос задан: 13 July 2018 16:42
1
ответ

C ++ Move Semantics: обработка объектов конца жизни как rvalues ​​[duplicate]

Предположим, что f1 является объектом класса Foo. Построим еще один объект того же класса Foo, из f1. Учитывая, что для Foo определен конструктор перемещения, строится ли f2 всегда копия ...
вопрос задан: 19 June 2018 00:19
1
ответ

Почему семантика перемещения C ++ оставляет исходный код созданным?

В C ++ 11 была введена «семантика перемещения», реализованная через два специальных члена: конструктор перемещения и назначение перемещения. Обе эти операции оставляют удаленный объект созданным. Не будет ...
вопрос задан: 31 October 2015 18:25
1
ответ

Перегрузка на ссылке, по сравнению с единственной передачей значением + станд.:: переместиться?

Кажется, что основной совет относительно rvalues 0x C++ состоит в том, чтобы добавить конструкторов перемещения и переместить операторы в Ваши классы до реализации по умолчанию компиляторов их. Но ожидание является проигрывающей стратегией, если Вы исполь
вопрос задан: 15 March 2013 01:59
0
ответов

Почему C++11 имеет неявные перемещения для параметров-значений, но не для параметров-значений?

В C++11 параметры-значения (и другие значения) имеют неявное перемещение при возврате: A func(A a) { return a; // использует A::A(A&&), если он существует } По крайней мере, в MSVC 2010, ссылка на rvalue ...
вопрос задан: 19 October 2019 01:04
0
ответов

Запретить клиентам сохранять указатели, возвращаемые классом C ++

У меня есть класс file_manager, который отслеживает файлы в данном каталоге. Я использую его как модель для файлового интерфейса, похожего на Windows Explorer или macOS Finder. У file_manager есть различные методы find () для ...
вопрос задан: 28 February 2019 02:55
0
ответов

C ++ 11 значения и путаница в семантике перемещения (оператор return)

Я пытаюсь понять rvalue ссылки и переместить семантику C ++ 11. В чем разница между этими примерами, и какой из них не будет делать векторные копии? Первый пример std :: vector <...
вопрос задан: 5 January 2019 19:10
0
ответов

Как обеспечить соблюдение семантики перемещения при росте вектора?

У меня есть std :: vector объектов определенного класса A. Класс нетривиален, и для него определены конструкторы копирования и конструкторы перемещения. std :: vector myvec; Если я заполню вектор A ...
вопрос задан: 26 December 2017 17:50
0
ответов

Компиляторы автоматически используют семантику перемещения, когда подвижный объект используется в последний раз?

В последнее время я изучал ссылки на rvalue и пришел к выводу, что использовать pass -по значению везде, где будет сделана полная копия объекта (для полной ...
вопрос задан: 28 July 2017 08:33
0
ответов

Передача std::string по значению или ссылке [дубликат]

Возможный дубликат: дни передачи const std::string & в качестве параметра закончились? Должен ли я передавать std::string по значению или по ссылке (в не встроенную функцию), если семантика перемещения ...
вопрос задан: 23 May 2017 12:34
0
ответов

Почему перераспределение векторной копии вместо перемещения элементов? [дубликат]

Возможный дубликат: как обеспечить семантику перемещения при увеличении вектора? insert, push_back и emplace(_back) могут привести к перераспределению std::vector. Я был озадачен, увидев, что следующий код...
вопрос задан: 23 May 2017 12:34
0
ответов

Как использовать семантику перемещения со строкой std ::во время возврата из функции? [дубликат]

Возможный дубликат :С++ 11 rvalues ​​и путаница семантики перемещения То, что я считаю правильным, это std ::string GetLine (){ стандартная строка ::строка ул; std ::getline (std ::cin, str ); return std ::move (str ); } Но при...
вопрос задан: 23 May 2017 12:25
0
ответов

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

Этот вопрос исходит из проблем, поднятых в этом ответе. Обычно мы определяем операторы присваивания копирования для типа T как T& operator=(const T&), а операторы присваивания перемещения для типа T как T&...
вопрос задан: 23 May 2017 12:20
0
ответов

Когда компилятор C ++ 11 заставит RVO и NRVO превзойти семантику перемещения и привязку константных ссылок?

Рассмотрим случай, когда "целые" объекты с включенной семантикой перемещения возвращаются из функций, как с std :: basic_string <>: std :: wstring build_report () const {std :: wstring report; ... ...
вопрос задан: 23 May 2017 12:15
0
ответов

Какую оптимизацию обеспечивает семантика перемещения, если у нас уже есть RVO?

Как Насколько я понимаю, одной из целей добавления семантики перемещения является оптимизация кода путем вызова специального конструктора для копирования «временных» объектов. Например, в этом ответе мы видим, что он может ...
вопрос задан: 23 May 2017 12:09
0
ответов

Семантика движения - что это такое? [дублировать]

Возможный дубликат: Кто-нибудь может объяснить мне двигательную семантику? Кто-нибудь может указать мне на хороший источник или объяснить здесь, что такое семантика движения?
вопрос задан: 23 May 2017 12:09
0
ответов

Автоматически возвращаются локальные значения xvalue

Следуя комментарию, который я сделал по этому поводу: передача std::vector в конструктор и семантика перемещения Необходим ли std::move в следующем коде, чтобы гарантировать, что возвращаемое значение является значением x? std:...
вопрос задан: 23 May 2017 12:06
0
ответов

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

Учитывая, что класс на самом деле является перемещаемым, ручная реализация конструктора перемещения и оператора присваивания перемещения для класса быстро становится утомительной. Мне было интересно, когда это на самом деле тяжело, ...
вопрос задан: 23 May 2017 12:01
0
ответов

Специализация std :: swap устарела теперь, когда у нас есть семантика перемещения? [дубликат]

Возможный дубликат: семантика перемещения == пользовательская функция подкачки устарела? Вот как std :: swap выглядит в C ++ 11: template недействительный своп (T & x, T & y) {T z = std :: move (x); ...
вопрос задан: 23 May 2017 12:01