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