Inferring static array size

Nick Treleaven nick at geany.org
Fri May 3 18:27:56 UTC 2024


On Friday, 3 May 2024 at 12:12:29 UTC, NotYouAgain wrote:
> and this won't work either:
>
> int i = 2;
> //int[10] powersOfTwo = generate!(() => i *= 
> 2)().take(10).array; // fine
> auto powersOfTwo = staticArray!(generate!(() => i *= 
> 2)().take(10).array); // nope

You can't read `i` at compile-time. `staticArray!range` only 
works when `range` elements are known at compile-time.

```d
auto powersOfTwo = staticArray!10(generate!(() => i *= 2)());
pragma(msg, typeof(powersOfTwo)); // int[10]
```


More information about the dip.ideas mailing list