[Issue 15162] New: byDchar calls empty twice in a row
    via Digitalmars-d-bugs 
    digitalmars-d-bugs at puremagic.com
       
    Mon Oct  5 13:11:07 PDT 2015
    
    
  
https://issues.dlang.org/show_bug.cgi?id=15162
          Issue ID: 15162
           Summary: byDchar calls empty twice in a row
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: phobos
          Assignee: nobody at puremagic.com
          Reporter: bugzilla at digitalmars.com
The following program:
  import std.utf;
  import core.stdc.stdio;
  struct S {
    bool empty() { printf("empty\n"); return !s.length; }
    @property char front() { printf("front\n"); return s[0]; }
    void popFront() { printf("popFront()\n"); s = s[1 .. $]; }
    string s;
  }
  void main() {
    auto s = S("hello");
    auto r = s.byDchar();
    r.empty;
    r.front;
    r.popFront();
    r.empty;
    r.front;
    r.popFront();
  }
prints 'empty' twice:
  empty
  empty
  front
  popFront()
  empty
  empty
  front
  popFront()
For efficiency, it should only call empty once per character.
--
    
    
More information about the Digitalmars-d-bugs
mailing list