0321デフォルトの名無しさん
2020/11/24(火) 00:31:06.85ID:EBaS3Lgi以下のようなコードなのですが、
pub trait Messenger {
fn send(&self, msg: &str);
}
pub struct LimitTracker<'a, T: 'a + Messenger> {
messenger: &'a T,
value: usize,
max: usize,
}
impl<'a, T> LimitTracker<'a, T>
where T: Messenger {
pub fn new(messenger: &T, max: usize) -> LimitTracker<T> {
LimitTracker {
messenger,
value: 0,
max,
}
}
// 以下略
pub struct LimitTracker<'a, T: 'a + Messenger> {
の行でトレイト境界に
'a + Messenger
を指定しているようなのですが、
このような書き方今までに出てこなかったので試しに
pub struct LimitTracker<'a, T: Messenger> {
と書き替えてみたところ、警告もなしにコンパイルできてしまいました…
これ、何の意味があるんでしょう?