From: Peter Dimov (pdimov_at_[hidden])
Date: 2008-04-29 11:45:03
> TR1 states that the dtor of enable_shared_from_this is non-virtual, the
> trunk version violates this.
Yes. This is the least of our worries though.
We need to decide on the direction we need to take. The upcoming C++
committee meeting is the last chance for a new feature to go into the
working paper, and it may even be too late, depending on the LWG mood.
I'm not sure yet what the best course of action is, but one reasonable
course of action would be to propose sp_accept_owner (with the appropriate
changes to enable_shared_from_this). An additional proposal may include the
member to free function change, if we choose to pursue it.
The current state of enable_shared_from_this is not in accordance with this
plan. If we propose sp_accept_owner, I strongly prefer the trunk version of
enable_shared_from_this to reflect the proposal, in a plain, unoptimized,
"reference", doable in user space, form. Daniel, your optimization work
takes us further away from this. Now is not the time to optimize; we need to
be sure of the specification we're implementing, and even if we were, it
pays off at the beginning to have a plain reference implementation that
others can lift off as-is and include in their stdlibs.
To get back to the subject, our current specification of sp_accept_owner
requires the virtual destructor, a fact that had remained hidden (at least
for me) because we don't have a reference implementation of the std changes
we're (hypothetically) about to propose.