I recently saw an example in an operator overloading review where they talked about how the + operator was essentially a function with 2 parameters.
With a bit of poking I decided to look at this a bit deeper and found that calling + like a function does indeed work, just not how you would expect... eg:
int first = 6;
int second = 9;
int result = +(second,first);//result=6
The assembly for this is
int result = +(second,first);
mov eax,dword ptr [first]
mov dword ptr [result],eax
The call to + is simply moving the last parameter into eax.
Can anyone tell me the purpose of this and/or what it is called?