How to get the location (file, line) of UDA without parens?

Andrey Zherikov andrey.zherikov at gmail.com
Sun Nov 14 13:42:35 UTC 2021


On Sunday, 14 November 2021 at 07:06:25 UTC, user1234 wrote:
> On Sunday, 14 November 2021 at 05:12:58 UTC, Andrey Zherikov 
> wrote:
>> Here is my code:
>> [...]
>> `W()` (2) works as expected but is it possible to achieve the 
>> same without parenthesis so `getAttributes` trait returns 
>> `tuple(L("app.d", 16LU))` for (1)?
>
> No, without parens this is really the function template, as a 
> symbol, that becomes the UDA.

Can this be achieved with any other type of `W`? For example I 
can get the same result with struct (also changing `@W()` to 
`@W!()` on line (2)):
```d
struct W(string f = __FILE__, size_t l = __LINE__)
{
     auto loc = L(f,l);
}
```


More information about the Digitalmars-d-learn mailing list