std.allocator ready for some abuse

Dmitry Olshansky dmitry.olsh at gmail.com
Fri Oct 25 10:57:19 PDT 2013


25-Oct-2013 16:52, Jacob Carlborg пишет:
> On 2013-10-25 02:01, Andrei Alexandrescu wrote:
>
>> Oddly enough this can be actually done.
>>
>> with (setAllocator!Mallocator)
>> {
>>     ...
>> }
>>
>> setAllcator returns an rvalue that changes the global allocator to the
>> Mallocator in the constructor, and restores it to whatever it was in the
>> destructor.
>
> Wouldn't this be very unsafe? Say you call another function inside the
> with-statement and that function assumes the standard GC for allocating
> memory.
>

Very true. To put it simply it's a disastrous idea that sadly is too 
easy to be ignored.

IMHO we'd better start with containers and refitting Phobos from 
built-in AA/arrays to user-defined containers. One interesting way there 
is to accept/adopt containers as OutputRange.

-- 
Dmitry Olshansky


More information about the Digitalmars-d mailing list