On the richness of C++
Kevin Bealer
kevinbealer at gmail.com
Thu Apr 10 22:19:34 PDT 2008
Sean Kelly Wrote:
> == Quote from Kevin Bealer (kevinbealer at gmail.com)'s article
> > If you want to do really specific things with memory, C++ lets you do this, but
> > in D classes can only be handled by their object references. You can't do a
> > "placement new" or anything like it with D classes. In C++ you could build
> > classes that automatically allocate themself in a shared memory segment, but
> > in D, probably not. Note that in practice, this is hard to do right and I think is
> > rarely used for much.
>
> I'd personally like for "placement new" to be supported by the language. I've
> considered adding a new(void*) method to Object for this purpose in Tango,
> but haven't experimented enough to find out if this would cause any problems.
...
I can think of these reasons off hand why (C++) folks do placement new.
1. Allocate lots of class objects at once to reduce allocations.
2. Allocate-on-stack for objects to avoid allocation altogether.
3. Group classes together for memory locality.
4. Tricks like surrounding objects with DEADBEEF for memory
corruption detection, or adding next or left/right pointers to objects.
Out of curiosity, what motivates your desire for placement new?
Kevin
More information about the Digitalmars-d
mailing list