tags:

views:

125

answers:

3
  1. Have you used a checked STL implementation?
  2. Did it find bugs you were not expecting?
  3. Is there one I can try on Linux for free?
+1  A: 
  1. Microsoft's VC++ implements checking.
  2. It easily catches places where iterators refer to memory out-of-bounds of the STL container to which it belongs.
  3. I'm not sure, but I think you should try the Boost C++ library. It has myriad variety of features including concept checking, etc. Heck, its become the basis for the C++0x standard!
themoondothshine
PS: Using checked STL implementations will cause quite hit on performance, and that what C++ is known for: its performance!
themoondothshine
@themoondothshine: It also catches when you use begin/end iterators which don't point into the same container.
sbi
@themoondotshine: You only use checked version in DEBUG mode, right?
Nate
Yes, that's basically the idea, but you can use it anywhere you like!
themoondothshine
+1  A: 

I have not used it ever, but a quick search shows that STLPort has checked iterators in DEBUG mode.

David Rodríguez - dribeas
+3  A: 

The GNU implementation of the standard C++ library that comes with GCC has checked STL. Just add -D_GLIBCXX_DEBUG to your command line.

Yes, I've used it. I can't say for sure if it's caught bugs but it gives me more confidence that certain classes of bugs aren't being missed.

Because of performance overhead, we only use checked STL for debug builds.

R Samuel Klatchko