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.

Reply via email to