Результаты поиска по запросу "rvalue-reference"

3 ответа

Может ли компилятор автоматически генерировать std :: move для последнего использования lvalue?

Подобный код часто встречается в ссылочных статьях r-value: Дэйв Абрамс: переместите его с помощью Rvalue [http://cpp-next.com/archive/2009/09/move-it-with-rvalue-references/] void g(X); void f() { X b; g(b); // still need the value of b … g( ...

1 ответ

Очевидно, отсутствует перегрузка getline (), принимающая RRef для потоковой передачи в GCC 4.7.2 и Clang 3.2

Я столкнулся с неожиданной ошибкой компиляции при попытке использовать

1 ответ

Я совершенно не в духе :) Спасибо за вашу историю!

еялся, чтоstringstream имеет конструктор, который крадет свое начальное содержимое изstring&&, Разве таких межвидовых «конструкторов перемещения» вообще не существует в STL? Если нет, то почему?

ТОП публикаций

4 ответа

 Stroutrup, et. аль

чал некоторые новые возможности C ++ 11, и одна из них я заметил, это двойной амперсанд при объявлении переменных, напримерT&& var. Для начала, как зовут этого зверя? Я бы хотел, чтобы Google позволил нам искать такие знаки препинания, как ...

1 ответ

C ++ 11: Почему разрешено присваивать значения?

Из того, что я понимаю, причина, по которой опасно возвращать ссылки на rvalues из функций, обусловлена следующим кодом: T&& f(T&& x) { do_something_to_T(x); return static_cast<T&&>(x); } T f(const T& x) { T x2 = x; do_something_to_T(x2); return ...

2 ответа

Может быть, я неправильно понял вопрос, но я думаю, что OP говорит о rvalues-ссылке на типы функций (т.е. лямбда-выражения и т. Д.).

но я сосредоточился на концепциях glvalue, xvalues ​​и prvalue, а также на ссылках rvalue. Тем не менее, есть одна вещь, которая все еще ускользает от меня: Что такое"ссылка на тип функции"? Это буквально много раз упоминается в черновиках. ...

2 ответа

Перегрузка оператора C ++ для указателей

Интересно (просто из любопытства), почему перегрузка операторов не разрешена в C ++ для указателей. Я имею в виду что-то вроде этого: Vector2d* operator+(Vector2d* a, Vector2d* b) { return new Vector2d(a.x + b.x, a.y + b.y); } Vector2d* a = new ...

4 ответа

Понятно, спасибо за разъяснения. Да, эти два варианта выглядят эквивалентно мне.

е следующее: 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& operator+=(const vec& that) { v[0] += that.v[0]; v[1] ...

4 ответа

Должен ли я вернуть ссылку на rvalue (посредством std :: move'ing)?

C ++ Следующая запись в блоге сказал, что

3 ответа

Проблема с «перемещаемыми типами» в VC ++ 2010

Я недавно установил Visual Studio 2010 Professional RC, чтобы опробовать его и протестировать несколько функций C ++ 0x, которые реализованы в VC ++ 2010.Я с...