【发布时间】:2015-11-11 21:37:19
【问题描述】:
编译以下代码时:
trait RenderTarget {}
struct RenderWindow;
impl RenderTarget for RenderWindow {}
trait Drawable {
fn draw<RT: RenderTarget>(&self, target: &mut RT);
}
fn main() {
let mut win = RenderWindow;
let mut vec: Vec<Box<Drawable>> = Vec::new();
for e in &vec {
e.draw(&mut win);
}
}
我得到错误:
error: the trait `Drawable` is not implemented for the type `Drawable` [E0277]
src/main.rs:15 e.draw(&mut win);
^~~~~~~~~~~~~~
试图说明的错误信息是什么?还有,怎么解决?
有一个related question,但解决方案是修改特征A(在我的例子中对应于Drawable),但这里不可能,因为Drawable来自外部库。
【问题讨论】:
标签: generics compiler-errors rust traits