これが出力として「演算子 + 演算子 +」を出力するのはなぜですか? 私の期待は「演算子+二重演算子+」でした。誰かがこれに光を当ててもらえますか?
#include<iostream>
using namespace std;
struct mydata{
int mx;
mydata(int x = 0){}
mydata operator+(const mydata& rhs){
cout<<" operator + ";
mydata temp(rhs);
return temp;
}
operator int() const{cout<<" int "; return mx; }
operator double() const{cout<" double "; return mx; }
};
int main(){
mydata d;
mydata r = d + mydata(5); // L1
5 + (double)d; // L2
d + d; // L3
}