On Friday, 29 December 2023 at 17:11:49 UTC, DLearner wrote:
Compile-time:
[...]
Is there a 'foo1' that yields 1 from the snippet below?
[...]
Similarly, execution-time, is there a foo2 that wields 2 from
the snippet below:
[...]
**compile-tome**
```d
void main() {
import std.stdio;
size_t var1 = 1;
size_t var2 = 8;
writeln(mixin(var1.stringof));
writeln(mixin(var2.stringof));
}
```
**run-tome**
Given the information you provide I'd say you can use an
associative array:
```d
size_t*[string] registry;
void main() {
import std.stdio;
size_t var1 = 1;
size_t var2 = 8;
registry[var1.stringof] = &var1;
registry[var2.stringof] = &var2;
writeln(*registry[var1.stringof]);
writeln(*registry[var2.stringof]);
}
```
but take care to the entries lifetime, that's basically not safe
as this escapes stack addresses.