C++ Operatore di chiamata di funzione


È possibile sovraccaricare l'operatore di chiamata di funzione () :

Il sovraccarico deve essere fatto all'interno di una class / struct :

//R -> Return type
//Types -> any different type
R operator()(Type name, Type2 name2, ...)
    //Do something
    //return something

//Use it like this (R is return type, a and b are variables)
R foo = object(a, b, ...);

Per esempio:

struct Sum
    int operator()(int a, int b)
        return a + b;

//Create instance of struct
Sum sum;
int result = sum(1, 1); //result == 2