The docs for stdio.lines say that it's a struct. stdio.lines works with foreach.

The docs for foreach say:

"Iteration over struct and class objects can be done with ranges. For foreach, this means the following properties and methods must be defined: .empty ... .front ... .popFront()"

But when I try to access any of those properties or methods for stdio.lines, I get compilation errors:

  1 import io = std.stdio;
  2
  3 void main(string[] args) {
  4
  5     auto infile = io.File(args[1], "r");
  6
  7     auto filelines = io.lines(infile);
  8
  9     io.writeln(filelines.front);
 10     io.writeln(filelines.empty);
 11     io.writeln(filelines.popFront());
 12 }

test_filechunking.d(9): Error: no property 'front' for type 'lines' test_filechunking.d(10): Error: no property 'empty' for type 'lines' test_filechunking.d(11): Error: no property 'popFront' for type 'lines'

Why is this?

I'm using ldc2 for compilation, FWIW.

Andrew

Reply via email to