Selon this:Si le premier et le dernier d'une plage d'effacement de carte sont égaux, l'élément sera-t-il supprimé ou non?
itérateurs spécifiant une plage dans le conteneur de carte à enlever: [premier, dernier). c'est-à-dire que la gamme comprend tous les éléments entre le premier et le dernier, y compris l'élément pointé en premier mais pas celui pointé par le dernier.
Ceci est ambigu car il n'aborde pas le cas où le premier et le dernier sont égaux. Si premier et dernier sont égaux, l'élément sera-t-il supprimé ou non? Ceci est une représentation du code en question:
map<uint16_t, boost::shared_ptr<SPacket> >::iterator it = m_MyMap.find(ack);
if (it != m_MyMap.end()) m_MyMap.erase(m_MyMap.begin(), it);