On 26/09/11 7:46 PM, dsimcha wrote:
== Quote from Peter Alexander ([email protected])'s article
T newArray(T, I...)(I sizes);

// Usage:
auto foo = newArray!(uint[])(5);

This would be marginally do-able but very ugly if RTTI were used.
Ok, now I'm really lost. Where do allocators come into that?

I'm sorry.  To clarify:

SomeAllocator alloc;
auto foo = alloc.newArray!(uint[])(5);

The only way to do this with dynamic allocators would be a final templated
function wrapping a function that takes RTTI.  This would be marginally do-able
but very ugly.

Why on Earth would an allocator have a newArray method?

Allocators allocate bytes, they don't construct objects. newArray should take an allocator:

// Template version
T newArray(A, T, I...)(A allocator, I...);

// Dynamic version
T newArray(T, I...)(IAllocator allocator, I...);

newArray then requests:

allocator.allocate( /+ bytes +/, /+ align (optional) +/ );

And constructs the array in those bytes.

Reply via email to