On Friday, 26 May 2023 at 21:00:20 UTC, realhet wrote:

auto x = karcSamples[a.key].lod0;       print(x._size);
auto y = karcSamples[a.key].lod0();     print(y._size);
with(karcSamples[a.key].lod0) print(_size);
with(karcSamples[a.key].lod0()) print(_size);
When I put it into a temp variable or inside a with(), then both form works ok.

Bit when I try to write the whole thing in a single nice expression: No property `_size` for the type `void`.

In the documentation I see this:
- For the expression typeof(exp) where exp is an @property function, the type is the return type of the function, rather than the type of the function. - For the expression __traits(compiles, exp) where exp is an @property function, a further check is made to see if the function can be called.

I think this extra step is not always working and by writing an extra () or by using a temp variable or a with(), I was able to force it. I only hope there is a workaround that I can implement inside my template things, so the business logic could be nice as it can be...

Reply via email to