Call destructor directly.
Agustin
agustin.l.alvarez at hotmail.com
Sun Oct 20 20:07:02 PDT 2013
On Monday, 21 October 2013 at 02:26:03 UTC, Agustin wrote:
> On Monday, 21 October 2013 at 02:17:54 UTC, Adam D. Ruppe wrote:
>> On Monday, 21 October 2013 at 02:06:02 UTC, Agustin wrote:
>>> I'm implementing some custom memory allocator, is possible to
>>> call an object destructor directly?
>>
>>
>> destroy(object);
>>
>> destroy is in the automatically imported object.dm so you
>> don't have to import anything,
>>
>> The source code is in dmd2/src/druntime/src/object_.d, there's
>> a few overloads if you are curious how it is implemented.
>> Short answer is there's a pointer to the destructor in the
>> TypeInfo and destroy calls it.
>
> Thank you :)
What about constructor?. My current code is:
T allocate(T : Object, A...)(auto ref A arguments) {
auto pMemory = rawAllocate(__traits(classInstanceSize, T),
T.alignof); // Return void*
emplace!T(cast(T *)pMemory, arguments);
return cast(T) pMemory;
}
Doesn't seems to work, and i can't find any good documentation
about it.
More information about the Digitalmars-d-learn
mailing list