2
は、これら二つの特性を考慮してください。なぜ型パラメーターを持つ形質にブランケットインプを追加できないのですか?
pub trait Foo {
fn new(arg: u32) -> Self;
}
pub trait Bar<P>: Foo {
fn with_parameter(arg: u32, parameter: P) -> Self;
}
私はブランケットIMPL追加したい:
impl<T: Bar<P>, P: Default> Foo for T {
fn new(arg: u32) -> Self {
Self::with_parameter(arg, P::default())
}
}
をしかし、私は、コンパイラのエラーを取得:
error[E0207]: the type parameter `P` is not constrained by the impl trait, self type, or predicates
私はこれを取得だと思うが私は特性の一貫性のルールに違反しているので、エラーが発生しますが、これがどのようなルールを破るかは正確に分かりません。なぜこのパターンは許されないのですか?そして、もっと重要なのは、エラーを出さずに私が望むものを達成できるかどうかです。