小编Big*_*lon的帖子

有没有办法结合多个特征来定义新的特征?

有没有办法结合多个特征(通过继承?)来定义一个新的特征?我正在寻找像C++中的概念:

auto concept newConcept<typename T> : concept1<T>, concept2<T>, concept3<T> {};
Run Code Online (Sandbox Code Playgroud)

假设我想创建一个继承自的新特征Clone,Default以及其他一些特征,那可能吗?

rust

20
推荐指数
1
解决办法
6483
查看次数

错误:自动解除引用T时达到递归限制

我想知道这是正常还是错误:

struct A<T> (T);

impl<T> Add<A<T>, A<T>> for A<T> 
where T: Add<T, T> + Deref<T> + Copy {
    fn add(&self, &A(b): &A<T>) -> A<T> {
        let A(a) = *self;
        A(a.add(&b))
    }
}
Run Code Online (Sandbox Code Playgroud)

产生此错误:

<anon>:7:11: 7:12 error: reached the recursion limit while auto-dereferencing T [E0055]
<anon>:7         A(a.add(&b))
Run Code Online (Sandbox Code Playgroud)

同时a.add(&b)通过a+b编译替换没有错误

围栏

a+b应该只是糖a.add(&b)吗?

rust

3
推荐指数
1
解决办法
203
查看次数

标签 统计

rust ×2