В С++ 11 методы могут быть перегружены, независимо от того, является ли выражение, которое обозначает объект, на котором вызывается метод, lvalue или rvalue. Если я возвращу *this
из метода, вызванного через rvalue, мне нужно явно move
из *this
или нет?
Foo Foo::method() &&
{
return std::move(*this); // Is this move required or not?
}
К сожалению, я не могу просто проверить это на моем компиляторе, так как g++ еще не поддерживает эту функцию: (