Bug 22291 – __traits(arguments) to return a tuple of the function arguments
Status
RESOLVED
Resolution
FIXED
Severity
enhancement
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2021-09-09T00:55:09Z
Last change time
2022-07-04T16:56:00Z
Keywords
industry, pull
Assigned to
No Owner
Creator
Adam D. Ruppe
Comments
Comment #0 by destructionator — 2021-09-09T00:55:09Z
http://dpldocs.info/this-week-in-d/Blog.Posted_2021_07_26.html#on-my-wish-list
I often wish there was a tuple of the function's arguments available. I call it __arguments. D already has something similar for the D-style variadics, but I'd like to see it for all functions.
---
void foo(int a, int b) {
auto c = __arguments[0]; // same as int c = a;
writeln(__arguments); // same as writeln(a, b);
}
---
It is such a little thing but it would make that kind of forwarding a lot easier.
I also wouldn't mind a __this_function thing, but that's fairly easy to hack around with __traits(parent, {}). And yah, you could kinda do some weird mixin thing with traits(parent) and pulling out the parameters tuple and mixing in the names. But much better to just have __arguments that just works.