正如我们所知,在最常见的情况下,T&&
意味着“这是一个临时对象”。但是,如果想要从函数中返回一个临时对象,他/她可以如下声明该函数:
template<class T>
T f()
{
T t;
......
return t;
}
或(注:不正确)
template<class T>
T&& f()
{
T t;
......
return t;
}
但我认为后者有点过头了,因为前者足够了,而且向后兼容。
然而,我也发现std::forward()
' 的返回类型被声明为 T&&,所以我确信我对此的理解是不完整的。
我真正的问题是:我们应该在何时何地将函数的返回类型声明为 T&&?