On Wednesday, 6 December 2017 at 18:57:55 UTC, Ali Çehreli wrote:
On 12/06/2017 10:47 AM, Mark wrote:

> string info = readln();
> formattedRead(info, "%s %s", first_name, last_name);
>
> This piece of code works

> formattedRead(readln(), "%s %s", first_name, last_name);
>
> But this raises a compilation error, claiming that
formattedRead "cannot
> deduce function from argument types".

formattedRead takes the first parameter as 'ref'.

I hope we can change compiler error messages like this. What it means is that although the 'string' part of the argument matched, it cannot be passed as 'ref' because what readln() returns is an rvalue. (On the other hand, info above is an lvalue.) rvalues cannot be bound to references in D.

Ali


I see. That's somewhat inconvenient.

I recall there was some debate(s) about allowing rvalues as const references (like in C++). What was the verdict on that?

Reply via email to