On Sunday, 31 October 2021 at 17:35:35 UTC, Ali Çehreli wrote:
On 10/31/21 7:07 AM, Salih Dincer wrote:
> ```d
> auto foo(int value, auto s = Section(2, 60)) {
>     int max;      /*   ^------- ?
>     ...            */
>     return Section (0, max)
>   }
> ```
> Is possible something like above pointed. OK, I know it isn't
because I
> tried! Well, wouldn't it be nice if it did?

Makes sense because e.g. the following works:

struct S {
  auto i = 42;
}

I bet the problem with your proposal is "auto" in that position is a part of the two-word "auto ref" parameters. I don't know how hard or impossible it would be to allow just "auto" there.

In any case, although it would be nice for completeness, the use case is so rare that I wouldn't mind repeating the type twice in that usage. But I agree with you...

Ali

This is a teachable moment for me, so I'll ask the question. Why isn't something like this the answer?

```
import std.stdio: writeln;


struct Section
{
  int x;
  int y;
}


auto foo(T)(int value, auto ref T s = Section(2, 60))
{
  //...
  return Section(0, 60);
}

void main()
{
  foo(5).writeln;
}

```


Reply via email to