Bonjour,
Je viens vous voir aujourd'hui car je ne parvient pas à convertir un conteneur..
Voici un morceau de code qui pourra expliquer mon problème

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
bool comparerSavingsGain (SavingsGain a, SavingsGain b) {
    return a.gain > b.gain;
}

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
set<SavingsGain> Solution::creerGainsTries(Probleme &p) {
    unsigned n = p.getN();
	vector<Sommet> sommets = p.getSommets();
	double * * distances = p.getDistances();
	bool(*fn_pt)(SavingsGain,SavingsGain) = comparerSavingsGain;
    set<SavingsGain,bool(*)(SavingsGain,SavingsGain)> gains(fn_pt);
 
    for (unsigned i = 1; i < n - 1; ++i) {
        for (unsigned j = i + 1; j < n; ++j) {
            SavingsGain s;
            s.route = make_pair(i, j);
			s.gain = distances[i][0] + distances[0][j] - distances[i][j];
 
			gains.insert(s);
        }
    }
 
    return gains;
}
J'ai une erreur sur le "return" qui dit :
Error : Il n'existe aucune conversion définie par l'utilisateur appropriée de "std::set<SavingsGain, bool (*)(SavingsGain, SavingsGain), std::allocator<SavingsGain>>" en "std::set<SavingsGain, std::less<SavingsGain>, std::allocator<SavingsGain>>"

Merci d'avance
et bonne journée