Here is my code:
```d
struct L
{
    string file;
    size_t line;
}

auto W(string f = __FILE__,size_t l= __LINE__)()
{
    return L(f,l);
}

struct A
{
  @W       // (1): line# 16
  {
    int a;
    int b;
  }
  @W()     // (2): line# 21
  {
    int c;
    int d;
  }
}

void main()
{
pragma(msg, __traits(getAttributes, A.a)); // tuple(W(string f = __FILE__, ulong l = __LINE__)()) pragma(msg, __traits(getAttributes, A.b)); // tuple(W(string f = __FILE__, ulong l = __LINE__)()) pragma(msg, __traits(getAttributes, A.c)); // tuple(L("app.d", 21LU)) pragma(msg, __traits(getAttributes, A.d)); // tuple(L("app.d", 21LU))
}
```

`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)?

Reply via email to