On Fri, 17 Sep 2010 17:59:15 -0400, Andrei Alexandrescu <seewebsiteforem...@erdani.org> wrote:

On 09/17/2010 04:55 PM, Steven Schveighoffer wrote:
On Fri, 17 Sep 2010 17:33:11 -0400, Andrei Alexandrescu
<seewebsiteforem...@erdani.org> wrote:

I think clear() can be fixed if we remove the call to the constructor
AND obliterate the vptr.

agreed.

In fact ideally we'd obliterate all vptrs of the object, which might
be tricky. Ideas?

There's only one vptr, no?

One global (at the beginning of the object) plus one per implemented interface.

Oh right, I forgot that's necessary to allow interfaces to be single-pointer types. Hm.. that seems like such a waste... Too bad interfaces can't be fat pointers.

For our purposes, you should only have to zero out the main vptr, since that's where the destructor is. But to help increase the loudness of errors on interface calls, you would have to zero out all the vptrs. Is this difficult? If necessary, we can add a traits directive, right?

-Steve

Reply via email to