On Sun, Feb 24, 2013 at 3:03 PM, Ashish Myles <[email protected]> wrote:
>
> Wait a sec...I guess we are barking up the wrong tree. The problem is
> not that rust macros don't support $n:integer, but that static array
> initialization seem to require a raw integer literal (possibly at the
> parsing level). One can imagine designing a statically-allocated
> matrix for size C1 x C2 that would allocate similar to:
> const C1 : int = 2;
> const C2 : int = 2;
> let a : [int * (C1*C2)] = [1,2,3,4];
> But the code above gives the following error
> error: expected integral vector length but found `(`
>
To slightly modify this example to be more realistic, I would do
let a : [int * (C1*C2)] = [0, ..(C1*C2)];
so that the initializer expression should also be valid.
Ashish
> If this misbehavior were fixed, I think the macro system would not
> need to accommodate ints and other types specially, keeping it
> fundamentally simpler. I would think that anything that requires a
> compile-time integer should be able to receive a compile-time
> evaluable integer expression. Ideally, it would be great if Rust went
> further to allow something like
> let a : [int * choose(C1, C2)];
> or
> const C3 = choose(C1, C2);
> let a : [int * C3];
> where choose is a pure function that returns n-choose-k.
>
> Any thoughts?
> Ashish
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev