Re: Visual Studio STL on Linux? Portable STL suggestion?
Most Qs were answered already by Igor, however:
Magnus wrote:
Our application must be portable (Windows and e.g. Red Hat). Is the MS
STL freely available with a commercial licence for e.g. Linux? If so,
why? Doesn't D. own the STL?
Firstly, you are confusing some terms. The STL is a library of containers,
iterators and algorithms initially invented at HP's. It strongly influenced
the C++ standard (in fact it was in large parts incorporated into the
standard). Other than that, the STL is pretty much obsolete.
Now, MS' compiler and Dinkumware's standardlibrary form one C++
implementation. There are others out there like e.g. the GCC.
The interesting part is that if you only use the parts required by the C++
standard, you should be able to just take your code to another system and
compile it there. This is even feasible in reality, with some minor
pitfalls.
Now, the MS C++ standardlib is a bit modified from the one from Dinkumware,
so it wont easily port to other platforms. It might also be problematic, I
don't know the exact terms but I know that they changed the license for the
MFC so you couldn't legally compile it using WINE under a free OS.
However, if you want, Dinkumware also supplies their C++ stdlib for use with
GCC. You'd have to look at their website for the licensing costs. With a
recent GCC, I wouldn't see a too much of reason for that though, with older
compilers it was often worth to replace the stdlib with something that was
in fact more standard.
Is there any other good portable STL that works with both MSVS and GCC?
1. You shouldn't need it. Stick to standard C++ and you will be fine.
2. Dinkumware does ship for both compilers, as said above already.
3. STLport is a free project that also aims to provide a portable standard
library implementation.
(We currently use STLport (and Boost and CommonC++ and ICU), but I've
read that it has not been developed much the last years
I can't speak for CommonC++ and ICU, but rest assured that even though the
webpage www.stlport.org seems to indicate a different idea STLport is being
actively developed, as is Boost. I'm using STLport with VS2005 for both the
desktop and CE targets.
We might have to switch from STLport since we want to use Oracle's
OCCI, which does not support STLport.
Barring bugs from either side, you'd only have to recompile OCCI - assuming
you have the sources...
As far as I know, Oracle only
supports the default MSVS 2005 STL on Windows, and libstdc++ with GCC
As I said, this isn't a problem because both libs are reasonable standard
conformant.
Uli