|
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 www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk