phobos: What type to use instead of File when doing I/O on streams?

J.Frank via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Nov 9 10:18:17 PST 2015


On Monday, 9 November 2015 at 14:48:35 UTC, Ali Çehreli wrote:
> import std.stdio;
> import std.range;
>
> void foo(I, O)(I in_stream, O out_stream)
>         if (isInputRange!I &&
>             isOutputRange!(O, ElementType!I)) {
>
>     // in_stream.seek(3); // compile error - good :)
>
>     foreach (element; in_stream) {
>         out_stream.put(element);
>     }
> }
>
> void main(string[] args)
> {
>     // Also consider .byLine, which is faster and risky
>     foo(stdin.byLineCopy,
>         stdout.lockingTextWriter);
> }
>
> Ali

Uhm... no. That's not a solution to my problem. Ranges are not 
(I/O-)streams.



More information about the Digitalmars-d-learn mailing list