Compiler bug?

Daniel Kozak kozzi11 at gmail.com
Fri Dec 29 07:55:08 UTC 2017


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 at 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 at 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.
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20171229/5a89ee80/attachment.html>


More information about the Digitalmars-d mailing list