Trait or builtin that returns arguments passed to current function (if any)
bauss
jj_1337 at live.dk
Thu Sep 9 09:31:05 UTC 2021
On Thursday, 9 September 2021 at 09:28:17 UTC, bauss wrote:
> On Thursday, 9 September 2021 at 09:22:35 UTC, Dukc wrote:
>> On Wednesday, 8 September 2021 at 21:53:21 UTC, Per Nordlöw
>> wrote:
>>> Adam, and like others including me, are longing for a
>>> trait/builtin [1] that returns the parameters passed to the
>>> function of the current scope (if any). Has such a thing been
>>> proposed previously?
>>>
>>> [1]
>>> http://dpldocs.info/this-week-in-d/Blog.Posted_2021_07_26.html#on-my-wish-list
>>
>> Why it should be a built-in? Apart from that requirement,
>> `Parameters!(mixin(__FUNCTION__))` does the trick. A bit
>> verbose but not much more so than the `__traits(...)`
>> built-ins.
>
> That doesn't do the same thing.
>
> Parameters returns the type of each parameter.
>
> __arguments in the case of OP holds the value of each parameter.
>
> ```d
> Parameters!(mixin(__FUNCTION__))
> ```
>
>
> Ex. for a function like:
>
> ```d
> void a(int x, int y);
> ```
>
> It'll actually give you:
>
> ```d
> (int, int)
> ```
>
> When really OP wants:
>
> ```d
> [x, y]
> ```
The problem with ParameterIdentifierTuple which would give you
the identifiers is that you get string representations of them,
so you have to use them in a way like I did in my example above.
Because:
```d
ParameterIdentifierTuple!(mixin(__FUNCTION__))
```
Gives you:
```d
tuple("x", "y")
```
More information about the Digitalmars-d
mailing list