Yeah guess your right. Never really thought about it that way as every library I have used has come with full source which you build yourself. I did say if you made no assumptions about the containers inner workings but if the library is already compiled then those assumptions have already been made.Quote:
The source code is portable. However, the data-layout of the STL containers may not be portable. This is a concern if you distribute a library that uses STL containers as part of the interface.
For example, if I write a library using MSVC 8.0 that exposes a function "void Foo(const std::string& str);", but someone uses Digital Mars's compiler to interface with it, then the user's application will pass a reference to Digital Mar's implementation of std::string rather than the expected MSVC 8.0 std::string. Any differences of internal layout will lead to undefined behavior.
