gars sagesmême code, un ordre différent si ex aequo en priority, en utilisant clang et gcc
Ma question était comme ça:
Je dois utiliser priority de std, tout fonctionne bien, jusqu'à ce que s'il existe liens entre mes enregistrements, l'ordre n'est plus long si je compile en utilisant clang comparé à la compilation sur gcc.
ma fonction de comparaison est simple:
bool comparator(const max_pair_t &lhs, const max_pair_t &rhs) {
return lhs.pval < rhs.pval;
}
qui est tout.
Existe-t-il un moyen de résoudre ce problème?
PS: J'imprimé tous les enregistrements à l'aide de deux excutables binaires, et comparé du côté de commande côte à côte, l'ordre est différent, mais les dossiers liés sont dans la zone voisine
Pouvez-vous d'abord nous convaincre s'il y a * un * problème? Quelle partie de la norme vous a fait croire qu'il y a un ordre portable parmi les éléments liés dans un tas? Êtes-vous sûr de vouloir réellement une file d'attente prioritaire, et non une autre structure de données? –
Si elles ont la même priorité, quelle différence fait-elle dans quel ordre elles sont traitées? – Barmar
@Barmar Parce que j'ai besoin que le résultat soit reproductible, le plus important, j'ai besoin que les deux versions génèrent un résultat cohérent. – Griffan