January 07, 2012 Re: Are D classes always garbage collected? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Vladimir Panteleev | On Thu, 22 Dec 2011 00:01:53 -0500, Vladimir Panteleev <vladimir@thecybershadow.net> wrote:
> On Thursday, 22 December 2011 at 04:15:25 UTC, Froglegs wrote:
>>
>>>> You can allocate classes anywhere, if you're OK with forfeiting safety guarantees. For example, see emplace in std.conv:
>>>>
>>>> http://dlang.org/phobos/std_conv.html#emplace
>>
>> Hum calling emplace ending up calling this bit of code..
>>
>> T* emplace(T)(T* chunk)
>> if (is(T == class))
>> {
>> *chunk = null;
>> return chunk;
>> }
>>
>> Which returned me a nice fat null pointer.. wth? Perhaps that should be a compile time error if you aren't supposed to use classes..
>
> Strange... I'm not sure what the deal is with that overload. I meant the last one on the page (that takes a void[]).
I see it, you are emplacing a class reference *pointer*, not a class reference.
Just so you know, classes are references already, you don't need to use pointers.
-Steve
|
Copyright © 1999-2021 by the D Language Foundation