dsimcha wrote:
== Quote from dsimcha (dsim...@yahoo.com)'s article
== Quote from grauzone (n...@example.net)'s article
dsimcha wrote:
Is there a way to run a class's c'tor on a block of memory from a template
function?  For example:

C newClass(C, CtorArgs...)(CtorArgs args) {
    // Allocate, initialize.
    // Want to call the c'tor that takes type CtorArgs.
}
Deeply hidden on the Digitalmars homepage, it hints _ctor() and shows
how to correctly construct an object (if you're using dmd):
http://www.digitalmars.com/techtips/class_objects.html
Yeah, I had thought of this, but apparently it doesn't work anymore.  This is
called excessive encapsulation--making things so opaque that, when someone 
really
knows what they're doing and has a good reason to mess around with the 
internals,
they still can't.  I'll file an enhancement requesting that this be put back.

Never mind, I realized I was doing two things wrong:

1.  It changed from _ctor to __ctor.
2.  The class needs to define a c'tor  If it doesn't, then there's no default
__ctor() that takes no args.  However, this is easy to check for in a static if
statement.

Walter and I talked a few times about the necessity of providing useful functions a la C++'s placement new in Phobos. std.algorithm offers swap and move, but we need some more. Please advise.

Andrei

Reply via email to