小编Jav*_*ine的帖子

是否可以在 Rust 的常量泛型上使用函数

假设我正在为数组编写一个包装类型。

struct Array<const L: usize, T> {
    raw: [T;L]
}
Run Code Online (Sandbox Code Playgroud)

我有一些函数可以改变数组包装器的长度,假设该函数是串联:

impl<const L: usize, T> Array<L, T> {
    fn concat<const L2: usize>(self, other: Array<L, T>) -> Array<{L + L2}, T> {todo!();}
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译这段代码时,rust 编译器变得非常疯狂。认为这可能与添加与实现多个特征相对应的类型有关,我尝试使用乘法而不是加法,但这也不起作用。

我知道 Rust 可以在编译时计算某些表达式,这只是不允许的情况,还是我遗漏了一些东西?

typechecking rust const-generics

0
推荐指数
1
解决办法
1557
查看次数

标签 统计

const-generics ×1

rust ×1

typechecking ×1