Объявление массива с использованием константного выражения для его размера
У меня есть новый тип оболочки вокруг массива. Я предположил, что я мог бы использоватьsize_of
вместо того, чтобы вручную передавать размер массива, но компилятор считает, что я не прав.
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));
}
Я пользуюсь nightly: rustc 0.13.0-nightly (7e43f419c 2014-11-15 13:22:24 +0000)
Этот код завершается со следующей ошибкой:
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
Ссылка Rust на выражения массива заставляет меня думать, что это должно работать:
в[expr ',' ".." expr]
форма, выражение после".."
должно быть константным выражением, которое может быть оценено во время компиляции, таким как литерал или статический элемент.