Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2003-10-11 22:08:26

"Joel de Guzman" <joel_at_[hidden]> writes:

>> I've always tried to keep the various platforms I'm targeting in the
>> front of my brain, or at least lurking in the shadows, so that I'm
>> never very far away from having code which works everywhere. It takes
>> a lot of effort that way, too, but there are certain basic design
>> decisions which are dictated by platform limitations -- if you handle
> I guess this goes against the "the design should not be driven by the
> implementation" principle. Yet in the real world, engineering is always
> a compromise. Sigh!

It's the design *of the implementation* which is driven that way. I
never let those decisions creep into the interface if I can help
it... and I usually can.

>> them without considering the broken platforms, you often have to go
>> back and restructure large parts of the program. So, I guess: it's up
>> to you whether you want to support vc6 or not, but if you're going to
>> support it, I suggest you not take the "port later" approach. As you
>> say, it takes too much energy.
> In fact, I too try as much as possible to avoid constructs that will
> not work on "broken" compilers. For instance, I avoid PTS as much as
> possible. However, on some occasions, it's just not
> possible. Consider remove_reference, for instance. And, as you said,
> it takes a lot of effort still, even if you keep the various
> platforms quirks in mind while designing. Now that VC7.1 is here,
> isn't it about time that we break free from the chains (at least for
> new libraries in the horizon)?

No opinion, really.

I *can* say that I've come around to the idea that sometimes you just
have to ask people to write BOOST_TT_BROKEN_COMPILER_SPEC(MyClass),
and that's a better approach than killing yourself to get full
functionality on BROKEN_COMPILERs with no "hints" from the user.

Dave Abrahams
Boost Consulting

Boost list run by bdawes at, gregod at, cpdaniel at, john at