import std;
using namespace std;

struct s1
{
string_view name = “”;
};

template
decltype(auto) getname(T&& obj [[msvc::lifetimebound]])
{
return forward_like(obj.name);
}

int main()
{
s1 p1 = { “陈悦” };
auto p2 = getname(p1);
std::println(“{}”, p2);
}
之前代码有错误,生命周期注解使用错误,现在已修改,请大家见谅。注意,生命周期注解现在只有ms vc高版本编译器及软件版本支持,用于帮助编译器分析生命周期

更多推荐