|
Boost : |
From: Andrei Alexandrescu (andrewalex_at_[hidden])
Date: 2002-04-19 00:02:36
"David Abrahams" <david.abrahams_at_[hidden]> wrote in message
news:04c501c1e75d$7d5a76e0$6501a8c0_at_boostconsulting.com...
> Sometimes a library can be an effective tool of pressure on vendors,
but
> I think in this case you have to change the design. It's not just an
> issue of old vs new compilers. In general, even the new compilers
don't
> implement the MI optimization. Vendors are simply *not* going to
break
> backwards-binary-compatibility just to make our smart pointers
smaller,
> and smart pointers simply *must* be small.
I agree, sigh.
There are two ways to redesign:
(1) we add a template parameter "Base" to two policies and we build a
linear hierarchy;
(2) we assume that StoragePolicy always stores state so we store it as
a member inside SmartPtr. Then, we assume the CheckingPolicy doesn't
ever store any state and defines only static functions, so we don't
store it anywhere nor derive from it. Finally, we assume that
OwnershipPolicy may or may not store state so we derive (solely) from
it.
Andrei
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk