Нечетный синтаксис объявления функции-члена C++: квалификатор &&

Из Boost ::Тема:

template <typename R>
class shared_future
{
...
// move support
shared_future(shared_future && other);
shared_future(unique_future<R> && other);
shared_future& operator=(shared_future && other);
shared_future& operator=(unique_future<R> && other);
...
}

Что это за двойные амперсанды? Я просмотрел "BS The C++ Langauge 3d edition" и не нашел никакого объяснения.


person Hassan Syed    schedule 22.02.2010    source источник
comment
Я знаю, что вы не могли найти его, выполнив поиск SO, но все же дубликат: stackoverflow.com/questions/844241/ (хотя я дам вам +1 за усилия и ясность.: P)   -  person    schedule 22.02.2010
comment
Спасибо, надеюсь, корректировка заголовка позволит кому-то еще найти решение.   -  person Hassan Syed    schedule 22.02.2010
comment
Проблема в том, что символы игнорируются при поиске, поэтому включение && не помогает. Вам нужно знать ссылку на имя rvalue, чтобы найти ТАК вопросы об этом.   -  person    schedule 22.02.2010
comment
p.s., если вы гуглите C++ && stackoverlow, это первое попадание.   -  person Hassan Syed    schedule 23.02.2010


Ответы (1)


Это добавление C++0x для ссылок rvalue.

См. http://www.artima.com/cppsource/rvalue.html.

person kennytm    schedule 22.02.2010
comment
немного странно, что библиотека в Boost начинает использовать C++0x до того, как она будет выпущена. - person Hassan Syed; 22.02.2010
comment
@Хассан: Нет, это не так. Гораздо лучше экспериментировать с функциями до того, как они будут стандартизированы (одна из основных целей стандарта — стандартизировать существующую практику), и такие эксперименты — основная цель повышения. Фактическая реализация boost использует препроцессор для выборочного включения использования ссылок rvalue. - person ; 22.02.2010