On 12/12/13 17:19, Adam D. Ruppe wrote:
Is that guaranteed to work as an input range? I ask because I've so often
written:
T current;
@property T front() { return current; }
that it just seems silly to me to write the extra lines when current == front. I
realize there is a small difference there, in that front is not an lvalue here,
but is when it is a direct member, but other than that, is this an acceptable
form? Or does the lvalue thing mean it is strongly discouraged?
Isn't the issue here not whether or not it will work in terms of your type being
a range, and more that it means that users can overwrite the value of front?
It seems to me that it would be OK for personal projects where you control 100%
of the code, but it wouldn't be acceptable for stuff that's intended to be used
by other people.