gpt4 book ai didi

rust - 指定特征边界时如何指定临时生命周期?

转载 作者:行者123 更新时间:2023-12-03 11:30:05 34 4
gpt4 key购买 nike

我想声明一个包装泛型类型的结构 T像这样:

use std::ops::Add;
struct MyStruct<T> where T: Add<&T, Output=T> {
t: T
}

这失败了:
error[E0637]: `&` without an explicit lifetime name cannot be used here
--> src/lib.rs:3:33
|
3 | struct MyStruct<T> where T: Add<&T, Output=T> {
| ^ explicit lifetime name needed here

error[E0310]: the parameter type `T` may not live long enough

我如何告诉编译器 &T可能是一个临时变量,因此任何生命周期都可以吗?

我不想将我的结构签名更改为 MyStruct<'a, T> ,因为这使得用法更加冗长和复杂。

最佳答案

use std::ops::Add;
struct MyStruct<T> where T: for <'a> Add<&'a T, Output=T> {
t: T
}

游乐场: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=864f6c2ad80544adfa7da96cef8eb69c

关于rust - 指定特征边界时如何指定临时生命周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60751372/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com