struct MyClass
{
MyClass() = default;
MyClass(int)
{
}
friend MyClass operator+(MyClass const &a, MyClass const &b)
{
//...
return MyClass{/**/};
}
};
int main()
{
MyClass a, b;
auto c = a + b; //fine
auto d = a + 3; //fine
auto e = 3 + a; //error
}
c3RydWN0IE15Q2xhc3MKewoJTXlDbGFzcygpID0gZGVmYXVsdDsKCU15Q2xhc3MoaW50KQoJewoJfQoJZnJpZW5kIE15Q2xhc3Mgb3BlcmF0b3IrKE15Q2xhc3MgY29uc3QgJmEsIE15Q2xhc3MgY29uc3QgJmIpCgl7CgkJLy8uLi4KCQlyZXR1cm4gTXlDbGFzc3svKiovfTsKCX0KfTsKCmludCBtYWluKCkKewoJTXlDbGFzcyBhLCBiOwoJYXV0byBjID0gYSArIGI7IC8vZmluZQoJYXV0byBkID0gYSArIDM7IC8vZmluZQoJYXV0byBlID0gMyArIGE7IC8vZXJyb3IKfQo=