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?