Deklarieren eines Arrays mit einem konstanten Ausdruck für seine Größe

Ich habe einen neuen Wrapper um ein Array. Ich nahm an, dass ich @ verwenden könnsize_of anstatt die Größe des Arrays manuell zu übergeben, aber der Compiler denkt, ich liege falsch.

use std::mem::{size_of, size_of_val};

#[repr(C, packed)]
struct BluetoothAddress([u8, ..6]);

fn main() {
    const SIZE: uint = size_of::<BluetoothAddress>();

    let bytes = [0u8, ..SIZE];
    println!("{} bytes", size_of_val(&bytes));
}

(playpen link)

Ich benutze die nächtliche: rustc 0.13.0-nightly (7e43f419c 2014-11-15 13:22:24 +0000)

Dieser Code schlägt mit folgendem Fehler fehl:

broken.rs:9:25: 9:29 error: expected constant integer for repeat count, found variable
broken.rs:9     let bytes = [0u8, ..SIZE];
                                    ^~~~
error: aborting due to previous error

DasRust-Referenz für Array-Ausdrücke lässt mich denken, dass dies funktionieren sollte:

In dem[expr ',' ".." expr] form, der Ausdruck nach dem".." muss ein konstanter Ausdruck sein, der zur Kompilierungszeit ausgewertet werden kann, z. B. ein Literal oder ein statisches Element.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage