首页 > 解决方案 > 如何在 Rust 中传递具体(非类型)通用参数?

问题描述

在 C++ 中,我可以创建一个采用编译时容量参数的结构,例如,

template <size_t capacity>
struct Foo {
  uint8_t data[capacity];
};

这很有用,例如,在堆栈上预先分配编译时可变数量的空间并避免堆分配。

我如何在 Rust 中做同样的事情?这不编译:

pub struct UStr<capacity> {
    data: [u8; capacity],
}

/*
error[E0423]: expected value, found type parameter `capacity`
 --> src/demo.rs:2:13
  |
2 |     data: [u8; capacity],
  |                ^^^^^^^^ not a value
*/

标签: genericsrust

解决方案


推荐阅读