0
ответов

Какие библиотеки Boost используют преимущество семантики Move

Ссылки Rvalue и семантика Move — это основная функция C++11, которая может значительно ускорить код за счет уменьшения количества ненужных копий. STL был обновлен, чтобы использовать эту новую функцию, когда c++11/0x ...
вопрос задан: 9 March 2012 22:41
0
ответов

Почему нет присваивания по умолчанию / конструктора перемещения?

Я простой программист. Переменные-члены моего класса чаще всего состоят из POD-типов и STL-контейнеров. Из-за этого мне редко приходится писать операторы присваивания или конструкторы копирования, так как они…
вопрос задан: 4 March 2012 22:01
0
ответов

Разумно ли возвращение с помощью `std :: move` в случае нескольких операторов возврата?

Я знаю, что обычно не рекомендуется возвращать с помощью std: : move, т.е. bigObject foo () {bigObject result; /*...*/ return std :: move (результат); } вместо просто bigObject foo () {bigObject ...
вопрос задан: 2 March 2012 11:35
0
ответов

Почему перемещение переменной-указателя не устанавливает для нее значение NULL?

При реализации конструкторов перемещения и операции присваивания перемещения rs часто пишут такой код: p = other.p; other.p = 0; Неявно определенные операции перемещения будут реализованы с помощью кода ...
вопрос задан: 26 February 2012 10:55
0
ответов

Что является источником семантики перемещения в C ++?

Мне интересно, каково происхождение семантики перемещения в C ++? В частности, он был изобретен специально для этого языка или было что-то подобное на другом языке (ах)? В последнем случае можно ...
вопрос задан: 14 February 2012 20:37
0
ответов

Будут ли перемещены подобъекты-члены локальных переменных, если они возвращены функцией?

Стандарт C ++ 11 гласит, что при выполнении условий исключения копирования (§12.8 / 31) реализация будет обрабатывать вернул локальную переменную lvalue и параметры функции, как rvalue first (move) ...
вопрос задан: 7 February 2012 20:06
0
ответов

rvalue-ссылка на массив: может ли это действительно случиться?

Рассмотрим следующий код: #include используя пространство имен std; typedef int array [12]; образец массива; array ret1 () {// не компилирует return sample; } array & ret2 () {образец возврата; } ...
вопрос задан: 3 February 2012 23:05
0
ответов

Ошибка компиляции при вызове перегруженной функции перемещения с неявно конвертируемым объектом

Эта программа не компилируется с использованием clang ++ test.cpp -std = c ++ 0x: класс A { public: A () {} A (const A &) {} A (A &&) {} A & operator = (const A &) {return * this; } A & ...
вопрос задан: 30 December 2011 18:54
0
ответов

Могу ли я инициализировать список-инициализировать вектор типа «только перемещение»?

Если я пропущу следующий код через мой снимок GCC 4.7, он попытается скопировать unique_ptrs в вектор . #include <вектор> #include int main () {using move_only = std :: ...
вопрос задан: 12 December 2011 01:06
0
ответов

Функция перемещения в эмуляции unique_ptr C ++ 03

Я пытаюсь понять, как реализована эмуляция C ++ 03 unique_ptr. unique_ptr очень похож на std :: auto_ptr, но безопаснее. Он выдает ошибки компилятора в тех случаях, когда auto_ptr передал бы ...
вопрос задан: 9 December 2011 19:08
0
ответов

initializer_list и семантика перемещения

Могу ли я перемещать элементы из std :: initializer_list ? #include # include template void foo (std :: initializer_list ...
вопрос задан: 19 November 2011 09:26
0
ответов

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

Я изучал возможности конструкторов перемещения в C ++, и мне было интересно, как можно использовать преимущества этой функции в примере, приведенном ниже. Рассмотрим этот код: template & ...
вопрос задан: 25 October 2011 06:39
0
ответов

Разница между приведением типов и использованием std::move()?

Меня просто немного интересует новая функция std::move(), только что добавленная в новейший стандарт C++. Закончив прочтение статьи об этом, я узнал, что определение функции - ...
вопрос задан: 22 September 2011 04:28
0
ответов

Сочетание двух конструкторов, которые копируют и перемещают

В настоящее время один из моих шаблонов классов игрушек имеет два конструктора, которые выглядят очень похожи: необязательно (Const T & X) {построить (х); } Дополнительно (T && X) {строить (std :: move (x)); } Могу ли я ...
вопрос задан: 12 September 2011 13:21
0
ответов

Список инициализаторов-построение вектора некопируемых (но подвижных) объектов

Можно push_back rvalues ​​некопируемого, но подвижного типа в вектор этого типа: #include struct S {S (int); SS&&); }; int main () {std :: vector v; ...
вопрос задан: 29 August 2011 14:17
0
ответов

Отслеживается ли привязка параметров после вычисления аргумента?

Предположим, у меня есть следующая функция: void foo(std::vector vec, int n); если я вызываю функцию так: std::vector числа { 2, 3, 5, 7, 11, 13, 17, 19 }; foo(std::move(...
вопрос задан: 29 August 2011 11:23
0
ответов

Сделать своп быстрее, проще в использовании и безопасным для исключений

Прошлой ночью я не мог спать и начал думать о std :: swap. Вот знакомая версия C ++ 98: template недействительный своп (T & a, T & b) {T c (a); а = б; б = с; } ...
вопрос задан: 24 August 2011 07:17
0
ответов

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

Стандарт точно определяет, что я могу сделать с объектом после его перемещения? Раньше я думал, что все, что вы можете сделать с перемещенным объектом - это уничтожить его, но это не будет ...
вопрос задан: 11 August 2011 14:19
0
ответов

Требуется ли уничтожение перемещенных объектов?

Если я переместил-построю a из b, нужно ли разрушать b, или я могу уйти, не выполнив так? Этот вопрос пришел мне в голову во время реализации необязательного шаблона . ...
вопрос задан: 4 August 2011 15:05
0
ответов

Для каких типов qsort не работает в C ++?

std :: sort меняет местами элементы с помощью std :: swap, который, в свою очередь, использует конструктор копирования и присваивание операторы, гарантирующие получение правильной семантики при обмене значениями. qsort swaps ...
вопрос задан: 30 May 2011 10:11
0
ответов

Неявно ли перемещаются параметры значений, когда они возвращаются по значению?

Рассмотрим следующую функцию: Foo foo (Foo Икс) {вернуть х; } Вернет ли x, вызовет конструктор копирования или конструктор перемещения? (Оставим здесь NRVO в стороне.) Для исследования я написал простое ...
вопрос задан: 15 May 2011 14:30
0
ответов

Почему этот вызов rvalue неоднозначен?

Почему этот вызов rvalue неоднозначен? У меня могут быть AA и AA &, и компилятор будет знать, что нужно использовать AA &. Но когда я добавляю третий вариант, я получаю сообщение об ошибке. Очевидно, AA && - лучшая перегрузка ...
вопрос задан: 8 April 2011 05:49
0
ответов

Модули OCaml: перенос (взаимосвязанных) типов из разных модулей в новый модуль

Проблема Одна из моих проблем заключается в переносе типов и из двух модулей в новый комбинированный модуль. Приведу пример. В настоящее время у меня есть следующие два типа модуля подписи типа ...
вопрос задан: 29 January 2011 20:34
0
ответов

Семантика перемещения и исключения C ++

Что происходит в готовящемся к выпуску стандарте C ++ 0x, когда в конструкторе перемещения или во время него создается исключение? Останется ли исходный объект? или оба являются исходным и подлежащим перемещению объектом в ...
вопрос задан: 19 January 2011 05:37
0
ответов

Что такое «Расширение семантики перемещения на * this»?

Пожалуйста, не могли бы кто-нибудь объяснить простым английским языком, что такое «Расширение перемещения семантика к * этому "? Я имею в виду это предложение. Все, что я ищу, это что это такое и зачем нам это нужно. Примечание ...
вопрос задан: 8 January 2011 10:34
0
ответов

Как обработать отсутствующий 'emplace_range' в C ++ 0x STL?

У меня есть два контейнера, скажем, они определены следующим образом: std: : вектор > a; std :: vector > b; Предположим, что заполнены как a, так и b. Я ...
вопрос задан: 17 November 2010 01:22
0
ответов

Есть ли в D что-то вроде семантики перемещения C ++ 0x?

Проблема «типов значений» с внешними ресурсами (такими как std :: vector или std :: string ) заключается в том, что их копирование обходится довольно дорого, и копии создаются неявно в различных контекстах, ...
вопрос задан: 16 November 2010 23:48
0
ответов

Я единственный, кто считает std :: move слишком трудным для понимания?

Итак, я читал о std :: move, std :: forward, rvalues, lvalues объявление и так далее в SO и других местах. Но я считаю, что могу ' Я это понимаю. Хотя мне иногда приходится исправлять ошибки, я думаю, что понимаю ...
вопрос задан: 12 November 2010 02:30
0
ответов

Как можно использовать перемещенные объекты? [дубликат]

После перемещения объект должен быть разрушаемым: T obj; func (std :: move (obj)); // не используйте obj и пусть он будет уничтожен как обычно. Но что еще можно сделать с помощью obj? Не могли бы вы переместить другой объект ...
вопрос задан: 6 October 2010 12:42
0
ответов

Неправильно ли предоставлять только конструктор перемещения?

Я хотел бы вернуть некопируемый объект типа Foo из функции. По сути, это вспомогательный объект, который вызывающий будет использовать для выполнения набора действий, с деструктором для выполнения некоторых ...
вопрос задан: 7 September 2010 05:53