$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Daniel Frey (d.frey_at_[hidden])
Date: 2008-04-23 16:44:24
On Wed, 2008-04-23 at 15:18 -0400, Frank Mori Hess wrote:
> If you initialize in the constructor, you have to always create a
> deleter_wrapper. Currently, one is only created if you need it. I'd guess
> you would find the current behavior preferrable.
OK, thanks for clarifying.
> It's fine.
OK, committed.
> > For the vtable, we could remove it by switching shared_from_this from a
> > member function to a free function that takes T* as a parameter, but
> > that's of course a breaking change...
>
> Didn't you propose something before like implementing the current esft
> interface as a derived class from a vtable-free base class that uses the free
> function approach? The last thing I saw from Peter about that was it needed
> to maintain compatibility.
Peter raised a valid concern about compatibility with TR1 and C++0x. I
pointed out that C++0x is not yet standardized, so this is our chance to
improve the interface. std::tr1::esft<T> could be derived from std::esft
(note, no template). Likewise for boost::tr1::esft<T> and boost::esft.
Of course the TR1 implementation needs an additional T* (in my optimized
1.35.0 esft version) or a vtable (in your trunk version), so only the
non-TR1-version would benefit.
As it has already been pointed out that the implementation should not
drive the interface, I'd like to point out that the interface should not
*force* some overhead without a good reason (IMHO).
I attached an (untested) wrapper for tr1, just in case someone is
interested in seeing some code...
Regards, Daniel