On Sat, 21 Jan 2017 04:01:06 +0000, bitwise wrote: > On Saturday, 21 January 2017 at 02:47:49 UTC, bitwise wrote: >> [...] > > I can see that 'TypedAllocator' exists, but with a different interface > than the rest of the allocators. Why wouldn't all allocators just have a > common interface?
TypedAllocator combines several allocators, using a series of Policies to determine which one to use for a given type. The interface for allocators is mostly given by IAllocator and mostly implemented with UFCS functions defined in std.experimental.allocator.package. The one aspect that isn't given with IAllocator (because OOP doesn't support it well) is that not all allocators have to support aligned allocations. TypedAllocator overrides some of those default implementations in order to use its Policies. It doesn't expose the untyped variants so that you can't get around its Policies. Unfortunately, there's no way to require that a TypedAllocator return an aligned allocation aside from using an aligned allocator for the relevant policy.
