Skip to content

Commit

Permalink
Merge pull request #49 from kyllingstad/joiner-input-range
Browse files Browse the repository at this point in the history
std.algorithm.joiner() should only require an input range
  • Loading branch information
andralex committed May 16, 2011
2 parents 390ae7b + c15062b commit d1d8124
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion std/algorithm.d
Expand Up @@ -2159,7 +2159,7 @@ assert(equal(joiner(["Mary", "has", "a", "little", "lamb"], "..."),
----
*/
auto joiner(RoR, Separator)(RoR r, Separator sep)
if (isForwardRange!RoR && isInputRange!(ElementType!RoR)
if (isInputRange!RoR && isInputRange!(ElementType!RoR)
&& isForwardRange!Separator
&& is(ElementType!Separator : ElementType!(ElementType!RoR)))
{
Expand Down Expand Up @@ -2289,6 +2289,13 @@ unittest
"Mary...has...a...little...lamb"));
}

unittest
{
// joiner() should work for non-forward ranges too.
InputRange!string r = inputRangeObject(["abc", "def"]);
assert (equal(joiner(r, "xyz"), "abcxyzdef"));
}

auto joiner(RoR)(RoR r)
if (isInputRange!RoR && isInputRange!(ElementType!RoR))
{
Expand Down

0 comments on commit d1d8124

Please sign in to comment.