首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >forward<T>和forward<T&&>一样吗?

forward<T>和forward<T&&>一样吗?
EN

Stack Overflow用户
提问于 2018-08-02 21:32:06
回答 1查看 406关注 0票数 12

看着std::forward

代码语言:javascript
复制
template< class T >
constexpr T&& forward( typename std::remove_reference<T>::type& t ) noexcept;
template< class T >
constexpr T&& forward( typename std::remove_reference<T>::type&& t ) noexcept;

这两个函数都返回T&&,如果我错了,它将collapses返回给

  • 如果T&是lvalue引用,则为T
  • T&&如果T是rvalue引用,或者T不是引用

对于可能是引用的任意类型的T,引用折叠是否总是导致forward<T>执行与forward<T&&>相同的操作?

如果是,是否有理由使用forward<T&&>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-02 22:12:21

引用折叠总是导致forward<T>forward<T&&>一样吗?

是。

有什么理由使用forward<T&&>吗?

不是的。

请注意,这是假定视图中唯一的forward是您在std::中显示的两个重载。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51662448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档