On Friday, 25 October 2013 at 00:00:36 UTC, Andrei Alexandrescu wrote:
On 10/24/13 2:38 PM, Namespace wrote:
On Thursday, 24 October 2013 at 21:31:42 UTC, Namespace wrote:
Awesome! Will Appender get an option to use a suitable allocator?

A dream of me, that will probably never come true, would be also
something like this:
----
with (Mallocator) {
    int[] arr;
    arr ~= 42; /// will use Mallocator.it.allocate internal
}
----

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.


Andrei

Are you saying that this code:
----
with (setAllocator!Mallocator) {
    int[] arr;
    arr ~= 42; [1]
}
----
use the mallocator for [1]? So no GC memory is needed?

Another examaple:
----
with (setAllocator!ScopeAllocator) {
    int[] arr;
    arr ~= 42; [1]
}
----
Did [1] use ScopeAllocator for memory allocation? And is the memory of arr automatically collected at the end of the scope with ScopeAllocator?

Reply via email to