$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Andrei Alexandrescu (andrewalex_at_[hidden])
Date: 2000-05-30 21:03:15
--- In boost_at_[hidden], "Mulligan, Pat" <Pat_Mulligan_at_x> wrote:
> Can I see your implemtnation?
I emailed you a copy of my draft chapter on smart pointers. I cannot
webify it for two reasons: quality and copyright. It's a rough draft
as of now, but I guess it embeds an idea or two.
> I have been invited to write an article of
> one of the rags on smart pointers to stl containers. In general,
my opinion
> is in the KISS camp on this, but if you have the cat in the bag,
I'll gladly
> utilize it.
It's KISS all right. I've rarely seen a simpler implementation. It's
decomposing that's tough. Then taking care of each policy is piece of
cake. But without the code of course that's FUD :o). Just give me
some time and I'll post the whole code. I didn't expect such a quick
and positive response, thanks to all very much.
About threading: threading model in SmartPtr, Singleton etc. is a
policy, which makes things very interesting. Boost can define the
requirements for a threading policy, and implement only the single-
threaded policy. This way boost has no platform-specific code, yet
clients can implement threading policies for their platforms.
Ah, I remember a question about efficiency. SmartPtr and much of my
code is very efficient in the presence of the following optimizations:
* Empty base optimization;
* Unused arguments optimization in conjunction with empty structures;
* Reasonable inlining
If a compiler doesn't do some or all of the following, Loki's
efficiency might degrade. I think these are reasonable optimizations,
though, and if you do have them, SmartPtr's efficiency in size and
speed is the same as the functionally equivalent handcrafted code.
Andrei