0
ответов

Есть ли случай, когда возврат ссылки RValue (&&) полезен?

Есть ли причина, по которой функция должна возвращать ссылку RValue? Техника, трюк, идиома, или шаблон? MyClass && func (...); Мне известно об опасности возврата ссылок в ...
вопрос задан: 23 May 2017 11:55
0
ответов

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

ОБНОВЛЕНИЕ внизу q1: Как бы вы реализовали правило пяти для класса, который управляет довольно тяжелыми ресурсами? но вы хотите, чтобы он передавался по значению, потому что это очень ...
вопрос задан: 23 May 2017 11:53
0
ответов

Семантика перемещения == пользовательская функция подкачки устарела?

В последнее время появляется много вопросов о том, как предоставьте свою собственную функцию подкачки. В C ++ 11 std :: swap будет использовать семантику std :: move и move, чтобы поменять местами заданные значения как можно быстрее. Это, конечно, ...
вопрос задан: 23 May 2017 11:53
0
ответов

Почему std :: forward отбрасывает constexpr-ness?

Поскольку std :: forward не объявлен constexpr, он отбрасывает constexpr-ness для любой функции, которой он передает аргументы. Почему std :: forward не объявляет сам constexpr, чтобы он мог сохранить constexpr-ness? ...
вопрос задан: 23 May 2017 11:51
0
ответов

Froen iwwer Postblit a Bewegungssemantik

Ech hunn eng ähnlech Fro scho viru enger Zäit gefrot, awer ech sinn ëmmer nach onkloer op e puer Detailer. Ënnert wéi engen Ëmstänn gëtt de Postblit Konstrukteur genannt? Wat sinn d'Semantik fir en Objet ze réckelen? ...
вопрос задан: 23 May 2017 10:33
0
ответов

Хранить указатели или объекты в классах?

Просто вопрос дизайна / оптимизации. Когда вы храните указатели или объекты и почему? Например, я полагаю, что оба этих работы (ошибки компиляции запрета): класс A {STD :: Unique_ptr ...
вопрос задан: 23 May 2017 10:31
0
ответов

Зачем мне std :: переместить std :: shared_ptr?

Я просматривал исходный код Clang и нашел этот фрагмент: void CompilerInstance :: setInvocation (std :: shared_ptr Value) {Invocation = std :: move (...
вопрос задан: 7 February 2017 13:03
0
ответов

Условная компиляция для операций перемещения

Как я могу проверить, поддерживает ли мой компилятор ссылки на rvalue или нет? Есть ли стандартный макрос препроцессора или у разных компиляторов разные макросы? В идеале я хотел бы написать следующее: # ...
вопрос задан: 22 June 2016 08:28
0
ответов

Воровство внутри конструктора перемещения

Во время реализации конструктора перемещения игрушечного класса я заметил шаблон: array2D (array2D && that) {data_ = that.data_; that.data_ = 0; height_ = that.height_; ...
вопрос задан: 22 June 2016 08:27
0
ответов

Должен ли я удалить конструктор перемещения и назначение перемещения интеллектуального указателя?

Я реализую простой умный указатель, который в основном отслеживает количество ссылок на указатель, который он обрабатывает. Я знаю, что могу реализовать семантику перемещения, но я не думаю, что это делает ...
вопрос задан: 7 May 2016 21:50
0
ответов

Перемещать диапазон элементов между контейнерами?

Я искал в документации C ++ функцию, которая могла бы перемещать диапазон элементов из одного контейнера в другой с использованием семантики перемещения. Однако я не нашел такой функции. Что я ...
вопрос задан: 15 December 2015 18:54
0
ответов

Перемещение unique_ptr из одного вектора в другой

Я хотел бы переместить unique_ptr, хранящийся в несортированном векторе, в другой vector, который будет содержать отсортированный вектор указателей. Разумеется, перемещение unique_ptr не приведет к автоматическому удалению ...
вопрос задан: 16 November 2015 00:56
0
ответов

Как вернуть fstream (C++0x)

Пожалуй, я займусь этим и начну с кода: #include #include #include class test : public std::ofstream { public: test(const ...
вопрос задан: 16 November 2015 00:54
0
ответов

Использование семантики перемещения с std :: pair или std :: tuple

Предположим, вы хотите воспользоваться семантикой перемещения, но один из ваших подвижных классов должен быть частью std :: pair. Целью может быть создание функции, которая возвращает std :: pair, которая может быть ...
вопрос задан: 16 November 2015 00:53
0
ответов

Сделать класс не копируемым * и * неподвижным

До C ++ 11 я мог использовать это, чтобы сделать класс не подлежащим копированию: private: MyClass (const MyClass &); MyClass & operator = (const MyClass &); С C ++ 11 я могу сделать это следующим образом: MyClass (...
вопрос задан: 13 October 2015 17:33
0
ответов

push_back против emplace_back

Я немного сбит с толку относительно разницы между push_back и emplace_back. void emplace_back (Type & amp; _Val); void push_back (const Type & amp; _Val); void push_back (Type & amp; _Val); Как ...
вопрос задан: 8 October 2015 06:00
0
ответов

Почему классы контейнеров Qt не допускают перемещения подвижных, не копируемых типов элементов?

Контейнерные классы Qt QList , QVector и т. Д. Требуют, чтобы их типы элементов были копируемыми. Начиная с C ++ 11, контейнеры STL требуют, чтобы их тип элемента был только копируемым или перемещаемым. ...
вопрос задан: 15 September 2015 11:18
0
ответов

Передача владения объектом из одного unique_ptr другому unique_ptr в C ++ 11?

В C ++ 11 мы можем передать владение объектом другому unique_ptr, используя std :: move (). После передачи права собственности смарт-указатель, который передал владение, становится нулевым, а get () возвращает ...
вопрос задан: 12 October 2014 03:32
0
ответов

Какой смысл использовать ref-квалификатор `const &&`?

Я немного покопался в ref-квалификаторах, следуя предыдущему вопросу. Приведенный ниже пример кода; #include #include #include struct A {...
вопрос задан: 5 October 2014 19:34
0
ответов

Почему std :: make_move_iterator работает с вектором , но не с вектором

Я ожидал, что std :: make_move_iterator всегда будет перемещать содержимое, но, похоже, нет. Похоже, что это движущиеся элементы в векторе , но не в векторе . Посмотрите код ниже ...
вопрос задан: 29 July 2014 06:32
0
ответов

Что такое «ссылка rvalue для * this»?

На странице состояния clang C ++ 11 натолкнулся на предложение под названием «ссылка rvalue для * this». Я довольно много читал о ссылках на rvalue и понял их, но не думаю, что знаю об этом. Я также ...
вопрос задан: 13 May 2014 05:50
0
ответов

Почему `std :: move` называется` std :: move`?

Функция std :: move (x) в C ++ 11 вообще ничего не перемещает. Это просто приведение к r-значению. Почему это было сделано? Разве это не вводит в заблуждение?
вопрос задан: 26 January 2014 07:11
0
ответов

Правильное использование `= delete` для методов в классах

Правильно ли следующий фрагмент кода отменяет определение всех других сгенерированных методов и конструкторов для класса? struct Picture {// 'явный': случайное преобразование из строки в изображение не было явным ...
вопрос задан: 25 June 2013 07:53
0
ответов

Правильно ли это использование семантики "перемещения" C ++?

Сегодня вечером I ' Я взглянул на код, над которым работал последние несколько дней, и начал изучать семантику перемещения, в частности std :: move. У меня есть несколько вопросов, чтобы задать вам профи ...
вопрос задан: 15 March 2013 13:30
0
ответов

Есть ли какие-либо ограничения в хранении значений в NSUserDefaults?

Я новичок в разработке iPhone и цели C. Я использовал NSUserDefaults для хранения некоторых значений в приложении. Но я не знаю, существует ли какой-либо предел для хранения значений в NSUserDefaults. Может ли кто-нибудь...
вопрос задан: 15 March 2013 13:24
0
ответов

Повторное использование перемещенного контейнера?

Как правильно использовать перемещенный контейнер? std::vector container; container.push_back(1); auto container2 = std::move(container); // ver1: Ничего не делать //container2.clear(); // ...
вопрос задан: 15 March 2013 13:24
0
ответов

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

Если у вас есть производный объект с конструктором перемещения, а базовый объект также имеет семантику перемещения, как правильно вызвать конструктор перемещения базового объекта из производного объекта move ...
вопрос задан: 15 March 2013 13:22
0
ответов

Переместить или оптимизация именованного возвращаемого значения (NRVO)?

Допустим, у нас есть следующий код: std :: vector f () {std :: vector y; ... вернуть y; } std :: vector x = ... х = f (); Кажется, у компилятора есть два подхода ...
вопрос задан: 15 March 2013 13:21
0
ответов

Zombie objects after std::move

I'm confused about the state of an object after it's been moved using C++0x move semantics. My understanding is that once an object has been moved, it's still a valid object, but its internal state ...
вопрос задан: 15 March 2013 13:15
0
ответов

Оставляет ли объект в рабочем состоянии при перемещении?

Допустим, у меня есть два вектора, и я перемещаюсь один в другой, v1 = std :: двигаться (v2); будет ли v2 по-прежнему в рабочем состоянии после этого?
вопрос задан: 15 March 2013 13:15