0
ответов

объекты C ++ 0x

У меня есть функция, которая создает тип дорогостоящего объекта (содержащий векторы и карты нефиксированного размера), поэтому я действительно хочу избежать вызова копий c'tors. До сих пор я только что возвращал std :: ...
вопрос задан: 15 March 2013 13:14
0
ответов

Удаление элемента в середине std :: vector по-прежнему дорого обходится с подвижными типами?

Это Обычно считается, что удаление элемента в середине std :: vector требует больших затрат, так как для заполнения дыры необходимо копировать каждый элемент после него. В C ++ 11 вместо этого std :: vector будет ...
вопрос задан: 15 March 2013 13:11
0
ответов

семантика перемещения std :: move

Я не typename remove_reference :: type && переместить (T && a) {вернуть; } почему remove_reference? мог ...
вопрос задан: 26 January 2013 15:40
0
ответов

Должны ли все / большинство функций установки в C ++ 11 быть написаны как шаблоны функций, принимающие универсальные ссылки?

Рассмотрим класс X с N переменными-членами, каждая из которых имеет некоторый копируемый и подвижный тип, и N соответствующих функций-сеттеров. В C ++ 98 определение X скорее всего будет выглядеть примерно так: класс X ...
вопрос задан: 7 January 2013 14:02
0
ответов

Дұрыс әдіс (семантиканы жылжыту) C ++ 11-ге қоңырау шалатын функциядан std :: vector қайтару

Мен std :: vector (немесе басқа STL контейнерін) толтырғым келеді: класс Foo { көпшілікке арналған: Foo (int _n, const Bar & _m); жеке: std :: vector fooes_; } 1. Жақсы көрінетін ктор, қымбат өнімділігі ...
вопрос задан: 11 October 2012 12:18
0
ответов

Понимание преимуществ семантики перемещения по сравнению с метапрограммированием шаблонов

Я прочитал некоторые описания семантики перемещения в C++11, и мне интересно, в каком контексте ее можно использовать. В настоящее время многие математические библиотеки C++ используют метапрограммирование шаблонов для задержки оценки.Если M = A +...
вопрос задан: 10 August 2012 13:01
0
ответов

C++11/VS2010 :Возврат контейнеров некопируемых, но перемещаемых объектов

Рассмотрим следующий код:#включить <вектор> #включить структуру A :private boost ::noncopyable { A (int num, const std ::string& name):число (число ),...
вопрос задан: 23 July 2012 18:19
0
ответов

Неявная обработка возвращаемого lvalue как rvalue

12.8 Копирование и перемещение объектов класса [class.copy] §31 и §32 говорят :в операторе возврата в функции с типом возвращаемого значения класса, когда выражение является именем неизменяемого -автоматического объекта (...
вопрос задан: 16 July 2012 17:58
0
ответов

Как компилятор узнает, что нужно перемещать локальные переменные?

Мне любопытно, как именно работает эта функция. Рассмотрим что-то вроде std ::unique _ptr f (){ std ::unique _ptr lval (nullptr ); вернуть значение; } Этот код прекрасно компилируется даже для...
вопрос задан: 15 July 2012 15:02
0
ответов

Закрытый конструктор запрещает использование emplace [_back] (), чтобы избежать перемещения

Рассмотрим следующий код: #include class A {public: A (A &&); // несколько дорогой статический std :: vector make_As () {std :: vector ...
вопрос задан: 11 July 2012 06:04
0
ответов

элемент, принимающий во владение параметр

Я вижу два разумных решения проблемы члена, который становится владельцем параметра :Foo ::Foo (std ::unique _параметр ptr) :элемент (стандарт ::перемещение (параметр )){ } Панель ::Панель (стандартная ::уникальная _ptr&...
вопрос задан: 9 July 2012 13:48
0
ответов

Где в этом коде скрывается деструктор?

Мне сложно понять, почему конструктор перемещения Foo пытается вызвать ~ ptr в следующем примере: #include template class ptr {T * ...
вопрос задан: 29 June 2012 10:53
0
ответов

Возврат стандартного ::вектора по значению

Часто говорят, что в C++11 разумно возвращать вектор std ::по значению. В C++03 это было в основном верно, поскольку RVO должен оптимизировать копию. Но это должно отпугнуть большинство разработчиков. В С++ 11...
вопрос задан: 28 June 2012 15:23
0
ответов

Гарантируется ли перемещение объекта при его возврате?

Я знаю, что при передаче объекта по значению в функцию всегда вызывается конструктор перемещения, если он существует, при условии отсутствия копии. Как насчет возврата объекта по значению? Например, скажем ...
вопрос задан: 18 June 2012 18:04
0
ответов

Когда использовать конструкторы/назначения перемещения

Я искал, но не нашел ответа на вопрос «Когда» их использовать. Я просто продолжаю слышать, что это хорошо, потому что это экономит мне лишнюю копию. Я ходил по каждому классу, который у меня был, но как-то так...
вопрос задан: 18 June 2012 17:23
0
ответов

В С++ 11 есть ли необходимость передавать ссылку на объект, который будет принимать выходные данные функции?

До C++11, если бы у меня была функция, работающая с большими объектами, я инстинктивно писал функции с таким прототипом. void f(A &return_value, A const ¶meter_value); (...
вопрос задан: 16 June 2012 04:54
0
ответов

Можно ли переместить boost::Optional?

Я пытался определить конструктор перемещения по умолчанию в классе с переменной-членом boost::Optional. #include #include <утилита> #include struct ...
вопрос задан: 28 May 2012 15:02
0
ответов

Стоит ли добавлять сеттер с поддержкой перемещения -?

Этот пост немного бессвязный, поэтому, прежде чем я перейду к нему, я хочу прояснить, о чем я спрашиваю :Добавили ли вы сеттеры с поддержкой перемещения -в свой код и считаете ли вы, что это стоит затраченных усилий? А сколько из...
вопрос задан: 21 May 2012 22:13
0
ответов

Переезд :что для этого нужно?

Что нужно для использования оператора присваивания перемещения стандартной строки ::(в VC11 )? Я надеялся, что он будет использоваться автоматически, так как v больше не нужен после назначения. Требуется ли в этом случае перемещение std ::?...
вопрос задан: 7 May 2012 21:46
0
ответов

Конструктор перемещения C++11

Как правильно реализовать конструктор перемещения с учетом следующего класса :class C { общедоступный :C (); С (С&& с ); частная :стандартная ::строка строка; } Конечно, идея...
вопрос задан: 1 May 2012 18:30
0
ответов

Разрешается ли компилятору превращать lvalue в ссылку rvalue, если lvalue больше не используется в своей определяющей области?

Рассмотрим следующее :ComplexObject foo (){Время сложного объекта; // Делаем что-то с temp ComplexObject result (temp, SOME _OTHER _SETTING ); //1 // Делаем что-то с результатом. Не используйте temp at...
вопрос задан: 27 April 2012 16:53
0
ответов

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

В операторе присваивания класса вам обычно нужно проверить, является ли назначаемый объект вызывающим объектом, чтобы не облажаться: Class & Class :: operator = (const Class & rhs) {...
вопрос задан: 27 April 2012 15:36
0
ответов

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

Вопрос. Можем ли мы использовать семантику перемещения для перемещения объекта, выделенного в куче, в стеке? Пример #include #include подключение класса { public: connection(boost::...
вопрос задан: 20 April 2012 03:15
0
ответов

объединение перегрузок const T& и T&&

У меня есть следующие две перегрузки шаблона функций :template необязательный некоторый (const T& x ){ вернуть необязательный (x ); } шаблон<имя типа T> typename std ::...
вопрос задан: 18 April 2012 14:54
0
ответов

Конструкторы перемещения и множественное наследование

Краткий обзор Как безопасно спроектировать конструктор перемещения, когда класс использует множественное наследование? Подробности Рассмотрим следующий сценарий:struct T { }; структура U {}; структура X :общедоступный T, общедоступный U {...
вопрос задан: 11 April 2012 22:28
0
ответов

Семантика перемещения и примитивные типы

Пример кода: int main() { std::vector v1{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; std::cout << "Печать v1" << std::endl; печать (v1); std::vector v2(std::...
вопрос задан: 3 April 2012 04:50
0
ответов

Эффективное использование семантики перемещения вместе с (N)RVO

Допустим, я хочу реализовать функцию, которая должна обрабатывать объект и возвращать новый (возможно измененный)объект. Я хотел бы сделать это максимально эффективно в C + 11. Окружение такое...
вопрос задан: 31 March 2012 07:00
0
ответов

Семантика перемещения в MS C++ и Clang

После некоторых экспериментов с семантикой перемещения с типом массива, который я создал, мне интересно, почему компилятор Microsoft C++ вызывает конструктор перемещения при возврате из метода по значению, в то время как...
вопрос задан: 26 March 2012 01:45
0
ответов

C++11: Участвует ли семантика перемещения при передаче по значению?

У меня есть API, который выглядит так: void WriteDefaultFileOutput(std::wostream &str, std::wstring target) { // Какой-то код, который изменяет цель перед ее печатью и тому подобное... } Мне интересно...
вопрос задан: 15 March 2012 17:19
0
ответов

Почему некоторые люди используют swap для перемещений?

Например, stdlibc ++ имеет следующее: unique_lock & оператор = (уникальный_блок && __u) {если (_M_owns) unlock (); unique_lock (std :: move (__ u)). swap (* это); __u._M_device = 0; ...
вопрос задан: 10 March 2012 00:58