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?
 
    