Re: Replacement for MS STL?
Garry W wrote:
And I've given up on the Microsoft implementation. When I tried to use it
I immediately fell over several bugs in it that took a lot of time to
find.
Hmmm, I'm only aware of one bug, though that one was a real showstopper for
me. And no, I'm not referring to the crippled variant MS ships for CE,
which was another point.
And working with it has been really difficult because the code is
kind of illegible. At least for the uninitiated. (Apologies if there are
authors here!)
I think it's a lack of understanding on your side. The point is that I must
be able to do this:
#define i 7*6
#define x 23,
#include <vector>
and still have a working vector afterwards. That is why that code, except
for the interfaces required by the standard, uses names reserved to the
compiler and standardlibrary implementation like __foo and _Bar.
I did download StlPort back at the beginning of the problems. But I
quickly discovered that StlPort doesn't compile (yet) under VStudio 8
(2005).
When were the beginnings of your problems? I'm using STLport (not StlPort,
please!) with VC8 shortly after I started migrating to VC8, around half a
year back or so. Also, STLport people tend to respond to requests and
bugreports (I'm one of them, FYI), so you don't have to do everything on
your own.
And it's so heavily encrusted with preprocessor stuff that it's
rather hard to work with too. The coding has much of the same
"encryption".
The preprocessor stuff is tough but necessary for portability.
The "encryption" is also necessary, as explained above.
Anything else out there that's nice? Doesn't need to be free. Doesn't need
to follow the STL spec as long as it does many of the equivalent things.
Does there exist a "super sweet" STL (or equiv) for Visual Studio?
One last thing: the term 'STL' is typically used to refer to the
container/iterator/algorithm parts of the standardlibrary, because those
parts have their origin in the STL (the real, original one) which is now
dead. Otherwise, the term STL doesn't describe anything, you should rather
say C++ standardlibrary if you mean that.
cheers
Uli