Schroedinger's Ranges
kdevel
kdevel at vogtner.de
Thu Jun 3 10:18:25 UTC 2021
On Thursday, 3 June 2021 at 01:22:14 UTC, Paul Backus wrote:
>> auto tmp = File(filename).byLine();
> `File.byLine` overwrites the previous line's data every time it
> reads a new line. If you want to store each line's data for
> later use, you need to use [`byLineCopy`][1] instead.
a) What is the rationale behind not making byLineCopy the default?
b) Does not compile:
csv.d(17): Error: function
csv.CSVData!true.CSVData.parseCSV(char[] str) is not callable
using argument types (string)
csv.d(17): cannot pass argument tmp.front() of type string
to parameter char[] str
csv.d(21): Error: function
csv.CSVData!true.CSVData.parseCSV(char[] str) is not callable
using argument types (string)
csv.d(21): cannot pass argument e of type string to
parameter char[] str
[...]/../../src/phobos/std/algorithm/iteration.d(525):
instantiated from here: MapResult!(__lambda2,
ByLineCopy!(immutable(char), char))
csv.d(21): instantiated from here:
map!(ByLineCopy!(immutable(char), char))
csv.d(40): instantiated from here: CSVData!true
c) Reminds me of the necessity to add dups here and there. And
reminds me of "helping the compiler" [1]?
[1] <https://wiki.c2.com/?HelpingTheCompilerIsEvil>
More information about the Digitalmars-d-learn
mailing list