タイトルを考えるのはとても難しかったです... (私は英語のネイティブスピーカーではありません.)
struct A
{
int value;
A operator+(int i) const
{
A a;
a.value=value+i;
return a;
};
};
int main(){
A a;
a.value=2;
a=a+2;
return 0;
}
このコードは期待どおりにコンパイル/動作しますが、a=a+2 を a=2+a に変更すると、コンパイルされなくなります。GCCは私にこのエラーを与えます:
no match for ”operator+” in ”2 + a”
2+a を a+2 のように機能させる方法はありますか?