05-Dec-2013 20:46, Andrei Alexandrescu пишет:
On 12/5/13 8:19 AM, monarch_dodra wrote:
On Thursday, 5 December 2013 at 15:00:07 UTC, Andrei Alexandrescu wrote:
Andrei
Output range! :)
Output range interface makes no linearity requirements. Just that:
"out.put(this)" compiles.
Hrm, construction of a hash table is linearizable so bad example on my
part. But I'm talking about general structured data such as objects with
allocated fields and connections to other objects etc. etc.
Pass desired container type that follows some implicit protocol such as
isGraph!T. Then container type defines allocation scheme (=some
container specific default).
As an extended version allow passing reference to an allocator to use
with that container type.
--
Dmitry Olshansky