why doesn't formattedRead take args by ref instead of by pointer?

Dmitry Olshansky dmitry.olsh at gmail.com
Sat Aug 17 02:25:46 PDT 2013


17-Aug-2013 12:53, Timothee Cour пишет:
> adding an overload would increases likelihood for bugs but could be
> possible. The same holds for getopt.
>
> Another question:
> the documentation for formattedRead is quite sparse, how does it explain
> the following behavior:
>
>    string s="a1 a2 a3";
>    string a,b;
>    uint n=formattedRead(s,"%s %s",&a,&b);
>    assert(a=="a1" && b=="a2 a3");
>

Seems like "a1_a2 a3" with _ being matched as space in format string 
between %s and %s.
Why %s is not stopping on any whitespace as is (like scanf) I'm not 100% 
sure.

>
>
> On Mon, May 20, 2013 at 10:44 PM, Dmitry Olshansky
> <dmitry.olsh at gmail.com <mailto:dmitry.olsh at gmail.com>> wrote:
>
>     21-May-2013 01:39, Timothee Cour пишет:
>
>         That was indeed what I was using in my updated ref based
>         reimplementation of formattedRead (see my original post for the
>         link),
>         and the other functions getopt, readf) are the same AFAIK.
>
>         so why not add it to phobos:
>         it's safer (no null / invalid pointers)
>         simpler user code
>         more consistent with rest of phobos
>
>         we could either make the existing by pointer functions enter a
>         deprecation path, or add a 'formattedReadRef' version for all those
>         functions.
>
>         Thoughts?
>
>
>     You can just add an overload I bet. Since you can't read a pointer
>     and &x is an r-value and (thank god) there wasn't decision to allow
>     r-value as plain ref.
>
>
>     --
>     Dmitry Olshansky
>
>


-- 
Dmitry Olshansky


More information about the Digitalmars-d-learn mailing list