www.digitalmars.com         C & C++   DMDScript  

digitalmars.dip.ideas - __HERE__

reply monkyyy <crazymonkyyy gmail.com> writes:
most user written aliasSeq's are repetitive, yet simply nessery 
for metaprograming

```d
alias foo=...;
alias bar=...;
alias fizz=...;
alias foobar=__HERE__;//seq!(foo,bar,fizz)
alias bar=...;
```

`__HERE__` is a special token that evaluates to an alias seq of 
local symbols defined above it

---

```d

auto func1(){...}
auto func2(){...}
auto func3(){...}

static foreach(f;__HERE__){//contains func1, 2 and 3; not f
```

---

like other special tokens it evaluate to the call site

```d
template foo(alias bar=__HERE__){
   alias foo=__HERE__;
}
struct foobar{
   int i;
   float f;
   alias fizz=foo!();//i,f
   bool b;
}
```
Jun 17
parent Paul Backus <snarwin gmail.com> writes:
On Monday, 17 June 2024 at 16:24:14 UTC, monkyyy wrote:
 most user written aliasSeq's are repetitive, yet simply nessery 
 for metaprograming

 ```d
 alias foo=...;
 alias bar=...;
 alias fizz=...;
 alias foobar=__HERE__;//seq!(foo,bar,fizz)
 alias bar=...;
 ```

 `__HERE__` is a special token that evaluates to an alias seq of 
 local symbols defined above it
Point of comparison: in Python, this is a built-in function called `locals()`. https://docs.python.org/3/library/functions.html#locals
Jun 18