Salut!
J'aide un collègue à débugger un code hérité, et en passant j'essaie de restructurer un peu les zones suspicieuses.
Notamment, je trouve les lignes suivantes:
J'essaie de me débarasser des variables globales et de la macro, mais je ne suis pas certain de comprendre ce qui est sensé se passer: pourquoi attribuer la valeur 0 à ... un map iterator ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 unordered_map<PAIR, int, hash_PAIR> common2; unordered_map<TRIPLE, int, hash_TRIPLE> common3; unordered_map<PAIR, int, hash_PAIR>::iterator common2_it; unordered_map<TRIPLE, int, hash_TRIPLE>::iterator common3_it; #define common3_get(x) (((common3_it = common3.find(x)) != common3.end()) ? (common3_it->second) : 0) #define common2_get(x) (((common2_it = common2.find(x)) != common2.end()) ? (common2_it->second) : 0)
Quelqu'un à une idée de ce que ce code pourrait vouloir dire ? Je suis aussi étonné que ça compile (c'est une macro, elle est pre-processed mais pas compiled?).
Merci !
Partager