On Thursday 31 January 2008 10:22:21 Michel Salim wrote:
And advance warning to those who maintain C++ applications: GCC 4.3
breaks applications that do not explicitly #include the headers they
use; some patching might be required.
It is generally a bad idea to rely on implicitly included headers, because it
completely kills portability. Different STL implementations use different
header hierarchies, and so the best practice is to explicitly include any
headers you need. They all have inclusion guards, so there is really no risk
to compiling if you do this, and most new C++ books advise this technique.
Unfortunately, though, until very recently most STL implementations had myriad
quirks that made portability a nightmare even if you followed best practices
and wrote 100% compliant code. Alas, it is the same with every attempt at
creating a standard; it takes years and years and years for the everyone to
finally get it right (POSIX, CORBA, libc, etc., etc., etc...).
-- Benjamin Kreuter