I'm wondering why the () operator override can't be "friend" (and so it needs a "this" additional parameter) while the + operator needs to be friend like in the following example:
class fnobj { int operator()(int i); friend int operator+(fnobj& e); }; int fnobj::operator()(int i) { } int operator+(fnobj& e) { } I understood that the + operator needs to be friend to avoid the "additional" extra this parameter, but why is that the operator() doesn't need it?