But maybe you can propose cjange from ref R r to auto ref R r

https://dlang.org/spec/template.html#auto-ref-parameters

On Fri, Dec 29, 2017 at 8:50 AM, Daniel Kozak <kozzi11@gmail.com> wrote:
No it is not a bug, because 
 uint formattedRead(alias fmt, R, S...)(ref R r, auto ref S args)
could not match (there is a ref R r) so in your first example you dont have lvalue but rvalue


On Fri, Dec 29, 2017 at 8:30 AM, IM via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
The following code:

  int guess;
  readln().formattedRead!"%d"(guess);

produces the following compiler error:

Error: template std.format.formattedRead cannot deduce function from argument types !("%s")(string, int), candidates are:
/usr/include/dmd/phobos/std/format.d(635):        std.format.formattedRead(alias fmt, R, S...)(ref R r, auto ref S args) if (isSomeString!(typeof(fmt)))
/usr/include/dmd/phobos/std/format.d(644):        std.format.formattedRead(R, Char, S...)(ref R r, const(Char)[] fmt, auto ref S args)

That is odd! I expected this to match:

  uint formattedRead(alias fmt, R, S...)(ref R r, auto ref S args)

However, the following works!!!

  int guess;
  string line = readln();
  line.formattedRead!"%d"(guess);


This definitely looks like a bug, but I want to confirm first before filing one.