P
P.J. Plauger
The point is, it is not a requirement that the thing in between
the < > be an actual file on the system,
Well, yes. But the same rule is in Standard C, which kept the .h
suffixes. So this *still* has nothing to do with omitting the
suffix.
as evinced by my one
(Borland C++Builder 5 (with Rogue Wave)). There are in fact no
files without extensions, if you look in the system include directory.
Oh, I've looked long and hard at the Borland packaging. It's gotten
better, but there for a while it was so determined to remap suffixes
that us third-party library vendors didn't have a chance at
selectively displacing parts of the library. Sun went through
much the same exercise. It's telling that both have backed down
considerably from their earlier positions.
If you write "#include <iostream.h>" you get the legacy crap. If
you write "#include <iostream>" you get the standard stuff.
Obviously the system does a bit of 'beind the scenes' stuff when
you write "#include <iostream>" (I imagine it would be something
like: enter namespace std, define some macros, and then open the
file iostream.h, and so on, you probably have a better idea of
this than I do).
What you have to do to deliver standard-conforming C++ is way
more complex than you've outlined.
The same goes for all the standard headers. Some of the other files
in the system include dir:
cctype.h
iterator.h
function.h (corresponds to #include <functional>)
algorith.h (corresponds to #include <algorithm>)
string.h (corresponds to #include <string.h>)
string.stl (corresponds to #include <string>)
You get the idea.
Yeah, I do. Borland's packaging is *not* compelling evidence
that omitting the .h from the Standard C++ headers leads tp
better technology.
P.J. Plauger
Dinkumware, Ltd.
http://www.dinkumware.com