11
votes

Utilisation d'une mise en œuvre de STL cochée, tout disponible gratuitement?

  1. Avez-vous utilisé une implémentation stl enregistrée?
  2. a-t-il trouvé des bugs que vous n'êtes pas attendu?
  3. y a-t-il un pour que je puisse essayer Linux gratuitement?

0 commentaires

3 Réponses :


1
votes
  1. VC VC ++ de Microsoft implémente la vérification.
  2. Il attrape facilement des endroits où les itérateurs se réfèrent à la mémoire hors limites du conteneur STL auquel elle appartient.
  3. Je ne suis pas sûr, mais je pense que vous devriez essayer la bibliothèque Boost C ++. Il a une variété myriade de fonctionnalités, y compris la vérification des concepts, etc. Heck, sa base de la norme C ++ 0x!

4 commentaires

PS: Utiliser des implémentations STL cochées entraînera une touche assez touchée sur la performance et que C ++ est connu pour: ses performances!


Il attrape également lorsque vous utilisez des itérateurs de début / d'extrémité qui ne pointe pas dans le même conteneur.


@themoondotShine: vous utilisez uniquement une version vérifiée dans le mode de débogage, non?


Oui, c'est essentiellement l'idée, mais vous pouvez l'utiliser partout où vous aimez!



2
votes

Je ne l'ai pas jamais utilisé, mais une recherche rapide montre que STLPORT a itérateurs cochés en mode de débogage.


0 commentaires

15
votes

La mise en œuvre GNU de la bibliothèque C ++ standard fournie avec GCC a enregistré STL. Il suffit d'ajouter -d_glibcxx_debug à votre ligne de commande.

Oui, je l'ai utilisé. Je ne peux pas dire à coup sûr si c'est pris des bugs, mais cela me donne plus de confiance que certaines classes de bugs ne soient pas manquées.

En raison de la surcharge de performance, nous utilisons uniquement STL cochée pour les constructions de débogage.


0 commentaires