This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: breaking compatibility


The biggest concern here is that the project still has to build in Visual
Studio (MS Visual C++) :( ... Visual still uses pretty separate *.h headers
from the new extentionless headers... and they don't mix well... we have, in
the past, tried switching to the new ISO extensionless headers, but we
encountered some real problems... Unfortuantely the Linux/gcc port is a
splinter effort, and has to cow-tow to the will of the larger Windows/Visual
C++ code-base... If you can think of a way to get this working with visual
*AND* gcc without requiring us to change several thousand lines of code this
would be best for us...

Thanks,

-Loren

-----Original Message-----
From: Stephen M. Webb [mailto:stephen@bregmasoft.com]
Sent: Thursday, April 19, 2001 12:42 PM
To: Loren Osborn; libstdc++@gcc.gnu.org
Subject: RE: breaking compatibility

The <iosfwd> header is part of the language.  If you're going to use the
istream part,
you should be willing to use the <iosfwd> part, since anything else (other
than including
<istream>) is pretty much guaranteed by the ISO standard to be non portable
(because
the library implementor is allowd to add additional parameters to the
templates.

If you have header files that depend on the istream template being declared,
you should
just include <iosfwd> in your .cpp file before any header(s) that reference
it.  The <iosfwd>
header contains ONLY forward declarations, not definitions (unlike
<istream>), so it shouldn't
cause any more problems than explicitly specifying the forward template
definition in your code.


Stephen M. Webb



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]