Joseph Rushton Wakeling:

Is it considered legit in any circumstances for popFront to take an input variable (e.g. a random number generator)? Or is it required always to have no input variables?

popFront is meant to be called by foreach, or to be verified by
the isSomething compile-time tests of std.range. In both cases if
popFront takes an argument, it doesn't work. So I think it's not
a good idea.

struct Foo {
     enum bool empty = false;
     @property int front() { return 1; }
     void popFront(int x) {}
     //void popFront() {}
}
void main() {
     import std.stdio;
     foreach (i; Foo())
         writeln(i);
}


temp.d(9): Error: function temp.Foo.popFront (int x) is not
callable using argument types ()
temp.d(9): Error: expected 1 function arguments, not 0

Bye,
bearophile

Reply via email to