$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: John Maddock (john_at_[hidden])
Date: 2005-10-16 06:39:30
> I've tried running some of the headers through the preprocessor,
> <iterator> looks like the smallest (but still much larger than
> <iosfwd> & <utility>). Although, <string> might be a better choice,
> as it's more likely to be included elsewhere.
Sigh, sadly no can do, they all end including one of the TR1 "poisoned"
headers (<memory> etc) eventually, and you end up with cyclic dependencies,
the problem is basically:
Boost.Config -> includes <string> (for example)
....
includes <memory> finds the TR1 version, which...
includes <boost/shared.hpp> which requires Boost.Config to have been fully
parsed already, but it's not, we're still in the middle of it!
There are other cyclic issues that are *much* worse than this, and I have a
nasty feeling I haven't found all of them yet.
It basically sucks, and I've been tearing my hair out over this, because I
also have a nasty suspicion that the TR1 headers will crash and burn if some
of the Boost headers are included first. Clearly that's not acceptable. I
think I have a solution that can be applied to Boost.Config and will let us
go back to using <utility> which has proved itself remarkably reliable, but
it's intrusive and can't really be applied to Boost as a whole.
So... I think I'm going with plan Z (the other 25 having been exhaused!),
and I'll revert the recent change, and go back to the drawing board...
John.