On Wednesday, 19 June 2013 at 02:32:46 UTC, Jonathan M Davis wrote:
On Wednesday, June 19, 2013 03:56:43 finalpatch wrote:
in the declaration of RandomSample it only checks for
isInputRange, but in the implementation it calls the .save()
method which is only available in forward ranges.

as a result this code does not compile:

void main()
{
auto a = File("test.d", "r").byLine();
auto s = randomSample(a,1,5);
writeln(s);
}

Is this a bug or I missed something?

Any function which uses save requires at least a forward range, and if its template constraint requires only an input range, then its template constraint is wrong. _Any_ function whose template constraint does not actually guarantee that anything that passes the constraint will compile with that function is
buggy.

- Jonathan M Davis

So you are saying this is a bug in std.random?

Reply via email to