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