Is there a plan to support fix-sized vector initialization without manual
replication?  My example is just a simplified version -- this was part of a
macro that takes the size as input ($n:expr) and the initialization was
[Zero::zero(), .. $n].  Is this use case no longer intended to be
supported?
On Nov 29, 2013 6:47 PM, "Huon Wilson" <dbau...@gmail.com> wrote:

> On 30/11/13 10:33, Ashish Myles wrote:
>
>> Previously we had the Copy trait, which when implemented by trait T
>> allowed one to write
>> [Zero::zero(), ..SZ] where T implemented the Zero trait.  But now I am
>> not sure how to get that behavior.  Concretely, here is the code I
>> want to get compiling. (Just to check, I added both Clone and
>> DeepClone, even though they don't automatically allow implicit
>> copyability).
>>
>> ----
>> use std::num::Zero;
>>
>> enum Constants {
>>      SZ = 2
>> }
>>
>> struct Foo<T>([T, ..SZ]);
>>
>> impl<T : Clone + DeepClone + Zero> Foo<T> {
>>      pub fn new() -> Foo<T> {
>>          Foo([Zero::zero(), ..SZ])
>>      }
>> }
>> ----
>>
>> The error I get is:
>>
>> error: copying a value of non-copyable type `T`
>> tmp.rs:155         Foo([Zero::zero(), ..SZ])
>>
>>
>> Any way to do this? Or is this no longer supported for general types?
>> Any intentions to add this behavior again?  Otherwise, I can't even
>> initialize my struct while being agnostic to the specific value of SZ.
>>
>> Ashish
>> _______________________________________________
>> Rust-dev mailing list
>> Rust-dev@mozilla.org
>> https://mail.mozilla.org/listinfo/rust-dev
>>
>
> Initialising a fixed size vector [T, ..n] by [foo(), .. n] unfortunately
> requires that `T` is implicitly copyable (that is, it doesn't move
> ownership when passed by value), and there's no way around this other than
> [foo(), foo(), foo(),...].
>
>
> Huon
> _______________________________________________
> Rust-dev mailing list
> Rust-dev@mozilla.org
> https://mail.mozilla.org/listinfo/rust-dev
>
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to