Re: how libraries work on different platforms
* James Kanze:
On Dec 2, 6:15 pm, "Alf P. Steinbach" <al...@start.no> wrote:
* hmahe...@yahoo.com:
Hello I am starter in this amazing language and in
programming in general and I am wondering how the stream
library for example works fine on many platforms
(Windows,Linux etc.) does the compiler come with different
versions of this library on each platform
Yes.
or the implementation of the library
works on all platforms.
Yes. <g>
In practice the stream library implementation relies on a
lower level that is platform-specific. For example, that
lower level might be and typically is the FILE* abstraction
from the C standard library.
Which just moves the problem down a level:-). Sooner or later,
you've got to hit Posix or Windows (or whatever). (FWIW: none
of the iostream implementations I regularly use use FILE*.)
Well, for example, the Dinkumware standard library implementation in
MSVC 7.1 does (I just fired it up and looked at the code). To
understand this, if you want to go looking at the code, note that it
uses the internal definition _iobuf. The C library's FILE is in this
implementation a typedef for _iobuf.
Perhaps you don't use the Dinkumware implementation?
There are other elements in the library which depend not only on
the system, but on the compiler itself: things like
std::type_info or std::numeric_limits.
Keep in mind that there exists portable implementations of the STL, e.g.
<url: http://www.stlport.org/>.
Cheers, & hth.,
- Alf
--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?