struct mydata{
int mx;
mydata(int x = 0){}
};
mydata operator+(const mydata& lhs, const mydata& rhs){
return mydata (lhs.mx + rhs.mx);
}
int main(){
mydata d;
mydata r = d + 5; // L1
5 + d; // L2
d + d; // L3
}
c3RydWN0IG15ZGF0YXsKICAgIGludCBteDsKICAgIG15ZGF0YShpbnQgeCA9IDApe30KfTsKCm15ZGF0YSBvcGVyYXRvcisoY29uc3QgbXlkYXRhJiBsaHMsIGNvbnN0IG15ZGF0YSYgcmhzKXsKICAgIHJldHVybiBteWRhdGEgKGxocy5teCArIHJocy5teCk7Cn0KCmludCBtYWluKCl7CiAgICBteWRhdGEgZDsKICAgIG15ZGF0YSByID0gZCArIDU7IC8vIEwxCiAgICA1ICsgZDsgLy8gTDIKICAgIGQgKyBkOyAvLyBMMwp9