Вопросы с тегом 'rvalue-reference'

Ссылка на rvalue - это новая языковая функция в C ++ 11, представляющая ссылку на rvalue. Вместе со свертыванием ссылок они используются для реализации и включения семантики перемещения и совершенной пересылки.
2
ответа

Почему результат «decltype (i + j)» не является ссылкой на rvalue?

Я пытаюсь привести простой пример для операции, которая приводит к rvalue. Этот тестовый пример должен был работать, но на удивление (для меня) результатом добавления двух int s является не rvalue (reference). Что мне здесь не хватает?...
задан 21.04.2016 в 09:36
1
ответ

Имеются ли переменные или нет?

Естественно, это не скомпилируется: int &z = 3; // error: invalid initialization of non-const reference .... , и это скомпилирует: const int &z = 3; // OK Теперь рассмотрим: const int y = 3; int && yrr = y; // con...
задан 22.12.2011 в 02:35
3
ответа

возврат по ссылке rvalue

A C ++ Следующий пост в блоге сказал, что A compute(…) { A v; … return v; } Если A имеет доступный конструктор копирования или перемещения, компилятор может выбрать вариант копирования. В противном случае, если A имеет...
задан 17.11.2012 в 14:01
5
ответов

Как сделать ссылочный параметр шаблона rvalue ТОЛЬКО привязываться к ссылке rvalue?

Я пишу сетевую библиотеку и сильно использую семантику перемещения, чтобы обрабатывать права собственности на дескрипторы файлов. Один из моих классов хочет получить файловые дескрипторные оболочки других видов и получить право собственности, по...
задан 23.10.2011 в 02:42
4
ответа

C ++ 0x «перейти из» контейнера

В C ++ 0x мы получаем повышение эффективности в отношении контейнеров с std::move : SomeExpensiveType x = /* ... */; vec.push_back(std::move(x)); Но я не могу найти ничего другого. Я имею в виду что-то вроде этого: SomeExpensiveType...
задан 26.01.2010 в 22:59
2
ответа

Зачем использовать std :: initializer_list по ссылке rvalue или по значению?

Большая часть кода C ++ 11, который принимает std::initializer_list , который я видел, берет его по значению, но иногда он берется ссылкой rvalue. Есть ли веские основания для этого? Например, почти каждый пример, который я встретил, делает...
задан 19.02.2014 в 01:02
4
ответа

Перегрузка по ссылкам R-значения и дублированию кода

Рассмотрим следующее: struct vec { int v[3]; vec() : v() {}; vec(int x, int y, int z) : v{x,y,z} {}; vec(const vec& that) = default; vec& operator=(const vec& that) = default; ~vec() = default; vec&am...
задан 15.05.2011 в 06:39
3
ответа

Ссылка Rvalue обрабатывается как Lvalue?

Я отправил этот ответ: Ссылка , которая содержит следующий код: void foo(string&& bar){ string* temp = &bar; cout << *temp << " @:" << temp << endl; } Является ли bar значением r или lvalue...
задан 12.02.2015 в 17:54
2
ответа

О перехвате исключений

Я пишу небольшую программу на C ++ 11 и действительно использую исключения для одного из первых. У меня вопрос о том, как эффективно поймать исключения, и после некоторых поисковых запросов у меня все еще нет ответа. Вот вопрос: Чем эффект...
задан 28.09.2011 в 12:15
2
ответа

Почему мне нужно использовать std :: move в списке инициализации move-constructor?

Допустим, у меня есть (тривиальный) класс, который можно перемещать и назначать при перемещении, но нельзя создавать при копировании или назначении при копировании: class movable { public: explicit movable(int) {} movable(movable&am...
задан 30.10.2012 в 13:20