Looking for an equivalent to C++ std::getline in D

Ali Çehreli via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed May 10 03:47:13 PDT 2017


On 05/09/2017 01:17 AM, k-five wrote:
 > On Monday, 8 May 2017 at 21:37:17 UTC, Ali Çehreli wrote:
 >> On 05/06/2017 02:24 AM, Stanislav Blinov wrote:
 >> ------------------------------------------------
 >
 > It may D has this philosophy as Perl has: There's more than one way to
 > do it

D certainly does not have such a philosophy. :)

 > I found more than 5 ways.
 >
 > another way:
 >
 > string[] input = [ "", "", "", "", "" ];  // reserve for 5 elements
 > args[ 1 ].split( '/' ).remvoe!( element => element.empty ).copy( input );

D does not try to limit the programmer but there aren't many ways of 
reading a line. Note that the difference in the above case is what the 
programmer is doing with the results. For example, copying the splitted 
lines into a pre-existing array should not count as a different way.

Plus, wrapping steps of the same sollution in a function should not 
count as a different way. Otherwise, we can have infinite number of ways 
of doing the same things. For example, not!empty is the equivalent of 
the following function:

auto notEmpty_0(T)(T a) {
     return !a.empty;
}

Change 0 above to 1, 2, ... :)

Ali



More information about the Digitalmars-d-learn mailing list