Use case: eliminate hidden allocations in buildPath

monarch_dodra monarchdodra at gmail.com
Thu Dec 5 00:09:54 PST 2013


On Wednesday, 4 December 2013 at 23:14:48 UTC, Andrei 
Alexandrescu wrote:
> Hello,
>
>
> Walter and I were talking about eliminating the surreptitious 
> allocations in buildPath:
>
> http://dlang.org/phobos/std_path.html#.buildPath
>
> We'd need to keep the existing version working, so we're 
> looking at adding one or more new overloads. We're looking at 
> giving the user the option to control any needed memory 
> allocation (or even arrange things such that there's no memory 
> allocated at all).
>
> It's a generous design space, so although we have a couple of 
> ideas let's hear others first.
>
>
> Thanks,
>
> Andrei

Use an output range. It's the generic D approach, and what we 
already do for the string functions such as std.string.translate:
http://dlang.org/phobos/std_string.html#.translate
(look down for the output range overloads).

Anything "allocator" related should be carried by the output 
range itself. The function itself should not care nor know about 
any of that.


More information about the Digitalmars-d mailing list