How can I have an unused type parameter in a struct?

前端 未结 2 597
情书的邮戳
情书的邮戳 2020-12-21 12:41

I\'m trying to update some older code I wrote that basically looks like:

trait Foo{}

struct Bar>{
  b: B
}
2条回答
  •  长情又很酷
    2020-12-21 12:54

    Depending on how your real Foo is, you might be able to work with associated types instead, like this:

    trait Foo{ type T; }
    
    struct Bar {
      b: B,
    }
    

    otherwise (if you do need to have the type parameter on Foo), PhantomData is indeed the way to go.

    You were not the only person finding PhantomData's docs confusing (see PhantomData is incomprehensible). As a result, the documentation for PhantomData has been recently improved by Steve Klabnik and now it does mention this scenario explicitly (and not just unsafe code).

提交回复
热议问题