Consider the following:

struct JustZeroes {
    int front = 0;
    enum bool = false;
    void popFront() {}
}

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?

Reply via email to