On Monday, 12 February 2018 at 09:10:52 UTC, Alex wrote:
A more extreme example: You have a compiled library, and some
.di (header) files. In one of those files is this code:
struct S {
static int[] arr;
void foo();
}
Now how should Typedef go about making foo() do the right
thing? Even with compiler support, this is impossible - the
source of S.foo is simply not available, and it doesn't take
the address of the static data as a parameter anywhere.
But isn't foo scoped somehow?
I mean, if foo is part of a type, then either you have to write
s.foo, or S.foo. And if the address of a static belongs to a
type, shouldn't this resolve the ambiguities?
Not really, since D doesn't have a concept of an address
associated with a type, only with instances of it. So when you
use a static array, the address is hard-coded.
--
Simen