Здравствуйте, _NN_, Вы писали:
_NN>&& означает, что функция может применяться исключительно к временному объекту.
Спасибо, я так и подумал.
_NN>_NN>#include <string>
_NN>#include <cstdio>
_NN>using namespace std;
_NN>class MyObject {
_NN> int _v;
_NN> public: MyObject setField(int v)&& { this->_v = v; return *this; }
_NN>};
_NN>int main() {
_NN> auto m = MyObject().setField(1); // ok
_NN> auto m2 = MyObject();
_NN> m2.setField(1); // error: 'this' argument to member function 'setField' is an lvalue, but function has rvalue ref-qualifier
_NN>}
_NN>
А как из этого изготовить хоть что-то полезное?
Например, вот такое тоже не работает:
...
auto m2 = m.setField(2);
А это, собственно, и есть одна из основных конструкция ФП.