Declarar matriz usando una expresión constante para su tamaño
Tengo un contenedor de newtype alrededor de una matriz. Supuse que podía usarsize_of
en lugar de pasar manualmente el tamaño de la matriz, pero el compilador cree que estoy equivocado.
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));
}
Estoy usando el nightly: rustc 0.13.0-nightly (7e43f419c 2014-11-15 13:22:24 +0000)
Este código falla con el siguiente error:
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
losReferencia de óxido en expresiones de matriz me hace pensar que esto debería funcionar:
En el[expr ',' ".." expr]
forma, la expresión después de la".."
debe ser una expresión constante que pueda evaluarse en tiempo de compilación, como un elemento literal o estático.