join

Stanislav Blinov blinov at loniir.ru
Mon Jan 24 05:59:47 PST 2011


18.01.2011 22:25, Andrei Alexandrescu пишет:
> I implemented a simple separatorless joiner as follows:
> ...
>
> The code has a few properties that I'd like to discuss a bit:
>
> 2. joiner uses an idiom that I've experimented with in the past: it 
> defines a local struct and returns it. As such, joiner's type is 
> impossible to express without auto. I find that idiom interesting for 
> many reasons, among which the simplest is that the code is terse, 
> compact, and doesn't pollute the namespace. I'm thinking we should do 
> the same for Appender - it doesn't make much sense to create an 
> Appender except by calling the appender() function.

I somewhat disagree about Appender. I had situations when I needed to 
store an Appender as a class/struct member (i.e. one may build an output 
range on top of it). Appender!T looks better than 
ReturnType!(appender!T()), IMHO. Of course, one could always alias that 
ReturnType, so it's not *that* much of a problem.


More information about the Digitalmars-d mailing list