On 2/6/14, 9:18 AM, Adam D. Ruppe wrote:
Something that mallocs should return Malloced!T which calls the
appropriate free (specified by the allocator) in the destructor. GC
should return GC!T. Refconted should return RefCounted!T, and so on.
That ain't going to work.
Malloced!T and GC!T suggests parameterization by the type of the
allocator. So there would need to be a type per allocator, which is a
losing proposition from std.allocator's viewpoint, since there can be so
many of them via template combinatorics.
RefCounted!T is a whole different thing, because it doesn't encode
allocation strategy but instead memory reclamation tactics. There's no
"and so on" and RefCounted!T cannot occur in an enumeration that
includes Malloced!T and GC!T.
Andrei