Steve Clamage has provided a nice summary of the trade-offs between the various STL options. I'll summarise it here:
- Default STL. Available as part of the OS so does not require a separate library to be shipped with the application. However, does not support the standard.
- -library=stlport4 Much better conformance with the standard, but no internationalisation. Must be distributed with applications that use it.
- -library=stdcxx4 (Apache). Complete implementation of standard. Available on S10U10 and onwards.
I'd also add that stlport4 and stdcxx4 typically have much better performance than the default library.
The other point that bears repetition is that you can only include one STL per application. So you cannot use different implementations for different libraries or for the application.