salve a tutti, mi son trovato davanti un esercizio, ecco il codice sorgente:

codice:
#include <iostream>
#include <iomanip>


using namespace std;


int addizione (int a, int b) {return (a+b);}


int sottrazione (int a, int b){return (a-b);}


int Operazione(int x, int y, int (*FunzioneDaLanciare) (int,int))
{
    int g;
    g=(*FunzioneDaLanciare) (x,y);
    return g;
}


int main()
{
    int m,n;
    int (*meno) (int,int) = sottrazione;


    m= Operazione(2, 1, addizione);


    n= Operazione(10, m, meno);
    cout << n;
    return 0;
}
non riesco a capire la funzione operazione, cosa dovrebbe fare o meglio quello che mi manda in pappa è il puntatore funzione da lanciare, qualcuno riesce a spiegarmela?