так?
я не понял вопроса...
В том смысле что со структурой есть два варианта: struct Foo<'a, F> where F: Fn(&'a Bar) -> &'a Baz { ... } — при котором инстанс Foo сам привязывается к лайфтайму 'a и не может его пережить; либо struct Foo<F> where F: for<'a> Fn(&'a Bar) -> &'a Baz { ... } — при этом сигнатура у identity становится несовместимой с F. При этом функция: fn foo<'a, F>(bar: F) where Fn(&'a Bar) -> &'a Baz { ... } — привязывается к лайфтайму только в контексте отдельного вызова.
ну да, вроде как так
а почему вам так важен identity, если не секрет?
Обсуждают сегодня