Salve a tutti.
Ho una classe con il nome "calciatore" e ho un file in cui ho tutti i calciatori (inseriti attraverso un altra funzione con questa disposizione)

nome cognome eta squadra gol ruolo

Ora vorrei ordinare tramite una lista tutti i calciatori in ordine decrescente di gol (creare insomma una classifica capocannoniere)
Questo è il codice che ho usato ma ho sicuramente sbagliato in qualche passaggio.

Codice PHP:
list<calciatorelista;
    
calciatore kicker_temp;
    
//inserisco nella list tutti gli elementi
    
while(fread (&kicker_temp ,sizeof(calciatore),1,filepunt) && !feof(filepunt)) 
    {          
lista.push_back(kicker_temp);
    }

    
struct SortProcess : public std::binary_function <calciatorecalciatorebool> {
        
    
bool operator()(calciatore &calciatore &b){
                    if(
a.gol<b.gol){return true;}
                    return 
false;
            };
};
    
lista.sort(SortProcess());

                    
cout << "Nome";
                    
cout << "\tCognome";
                    
cout << "\tSquadra";
                    
cout << "\tGol";
                    
cout << "\n" << endl;
                    list<
calciatore>::iterator it;
                    for(
it lista.begin(); it lista.end(); it++){
                    
cout << nome;
                    
cout << "\t" << cognome;
                    
cout << "\t" << squadra;
                    
cout << "\t" << gol;
                    
cout << endl;
    }

Non badate alle parentesi graffe il codice è estrapolato da un file che contiene piu funzioni quindi posso anche aver sbagliato a copiarlo. Il problema non dipende da parentesi o punti e virgola ma sicuramente nella sintassi della list.