【发布时间】:2021-06-11 17:24:11
【问题描述】:
假设我正在为数组编写一个包装器类型。
struct Array<const L: usize, T> {
raw: [T;L]
}
我有一些函数可以改变数组包装器的长度,比如函数是串联:
impl<const L: usize, T> Array<L, T> {
fn concat<const L2: usize>(self, other: Array<L, T>) -> Array<{L + L2}, T> {todo!();}
}
当我尝试编译这段代码时,rust 编译器变得非常疯狂。认为这可能与添加与实现多个特征相对应的类型有关,我尝试了乘法而不是加法,这也不起作用。
我知道 rust 可以在编译时评估某些表达式,这只是不允许这样做的情况,还是我遗漏了什么?
【问题讨论】:
标签: rust typechecking const-generics