что означает && справа от объявления метода?

Вот метод, который возвращает rvalue ссылку, но что означает && справа от имени метода?

return_type &&result() &&{
}

Ответы (1 шт):

Автор решения: Harry

Это значит, что функция-член вызывается только для rvalue-объекта. Например:

struct Test
{
    void f() && {};
};

int main()
{
    Test t;
    t.f();        // Ошибка
    Test().f();   // Компилируется
}

См. https://ideone.com/DDY9Sa

Точно так же единственный & говорит о применимости функции-члена к lvalue объекту:

struct Test
{
    void f() & {};
};

int main()
{
    Test t;
    t.f();        // Компилируется
    Test().f();   // Ошибка
}
→ Ссылка