views:

482

answers:

5

I'm currently using default implementation of STL for VS2005 and I'm not really satisfied with it. Perhaps there is something better?

+2  A: 

How about STLPort?

http://www.stlport.org/

Rob
I've been using STL Port with VC6 through to VS2008 and it works well.
Len Holgate
+2  A: 

Dinkumware supposedly produces one of the most standards-compliant implementations of the C++ standard library. You can get a binary licence for VS2005 for $200.

Chris Jester-Young
The STL that comes with Visual Studio is Dinkumware's.
Terminus
It's _based_ on Dinkumware, however, it is actually quite different from the product that Dinkumware sells.
Chris Jester-Young
+5  A: 

The Dinkumware STL implementation (supplied with VS2005) is actually quite good. The STL is a general purpose library and so it is almost always possible to write something better for very specific use cases.

I'm aware of the following alternative implementations, but I've never used them with VS2005:

SGI Standard Template Library 3.3: http://www.sgi.com/tech/stl/

STLport 5.1.6 (derived from SGI implementation): http://www.stlport.org/

Both SGI and STLport implement the size/length check as the first test in operator== and so you might like it. They are also both free to download and use.

Changing from one STL implementation to another, in theory, should be easy. However, I've heard from some colleagues that it is not always so. They've tripped over compiler bugs, found that they've inadvertently used non-standard features, or unknowingly relied on some behaviour specific to a particular STL implementation.

One good thing about the Dinkumware STL implementation is that it has been well tested with the VS2005 C++ compiler.

If you decide to try out these alternatives, good luck! And let us know how it goes.

Nelson
I believe Dinkumware has shipped a version of the STL that corrects a couple of bugs in the version that was shipped with Visual Studio 2005. Check the FAQ at Dinkumware.
Martin York
+1  A: 

There is also Apache STL, but as others have noted, I believe Dinkumware is your best bet.

Nemanja Trifunovic
+2  A: 

Depending on your constraints, you may find Electronic Arts' STL implementation as interesting: EASTL

Aaron