Re[6]: Базовое отличие ООП от ФП
От: _NN_ www.nemerleweb.com
Дата: 31.03.24 06:40
Оценка:
Здравствуйте, Sinclair, Вы писали:

SP>>легко преобразуется в иммутабельный


SP>>
SP>>class MyObject {
SP>>    int _v;
SP>>    public: MyObject setField(int v)&& { this->_v = v; return *this; }
SP>>}
SP>>

S>Простите, это на каком языке?

C++.
&& означает, что функция может применяться исключительно к временному объекту.

#include <string>
#include <cstdio>

using namespace std;

class MyObject {
    int _v;
    public: MyObject setField(int v)&& { this->_v = v; return *this; }
};

int main() {
    auto m = MyObject().setField(1); // ok

    auto m2 = MyObject();
    m2.setField(1); //  error: 'this' argument to member function 'setField' is an lvalue, but function has rvalue ref-qualifier
}
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.