История изменений
Исправление red75prim, (текущая версия) :
Зачем вносить лишний indirection? Так вместо указателя на объект будет указатель на указатель на объект.
Нет там лишнего разыменования. Vec<T>
- это указатель на данные, ёмкость и длина. Ну и до кучи: Box<[T]>
- это указатель и длина, Box<[T; N]>
- это просто указатель.
Плюс лишняя возможность выстрелить себе в ногу
Это как сказать. Получить панику из-за выхода за границу массива можно с такой-же лёгкостью (или также нелегко, на выбор) как и из-за выхода за границу инициализированной части вектора.
Ну и массив должен быть всегда полностью инициализирован. Если нужно инициализировать его поэлементно, то придётся иметь дело с [MaybeUninit<T>; N]
и ансейфом.
Исправление red75prim, :
Зачем вносить лишний indirection? Так вместо указателя на объект будет указатель на указатель на объект.
Нет там лишнего разыменования. Vec - это указатель на данные, ёмкость и длина. Ну и до кучи: Box<[T]> - это указатель и длина, Box<[T; N]> - это просто указатель.
Плюс лишняя возможность выстрелить себе в ногу
Это как сказать. Получить панику из-за выхода за границу массива можно с такой-же лёгкостью (или также нелегко, на выбор) как и из-за выхода за границу инициализированной части вектора.
Ну и массив должен быть всегда полностью инициализирован. Если нужно инициализировать его поэлементно, то придётся иметь дело с [MaybeUninit; N] и ансейфом.
Исходная версия red75prim, :
Зачем вносить лишний indirection? Так вместо указателя на объект будет указатель на указатель на объект.
Нет там лишнего разыменования. Vec - это указатель на данные, ёмкость и длина. Ну и до кучи: Box<[T]> - это указатель и длина, Box<[T; N]> - это просто указатель.
Плюс лишняя возможность выстрелить себе в ногу
Ну это как сказать. Получить панику из-за выхода за границу массива можно с такой-же лёгкостью (или также нелегко, на выбор) как и из-за выхода за границу инициализированной части вектора.
Ну и массив должен быть всегда полностью инициализирован. Если нужно инициализировать его поэлементно, то придётся иметь дело с [MaybeUninit; N] и ансейфом.