转发<T>和转发<T&>一样吗?
Is forward<T> the same as forward<T&&>?
查看std::forward
的文档,
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&&
,它(如果我错了,请纠正我)折叠到
T&
T
是否为左值引用T&&
T
是否是右值引用,或者T
是否不是引用
对于可能是引用的任意类型T
,引用折叠是否总是导致forward<T>
执行与forward<T&&>
相同的操作?
如果是这样,有什么理由使用forward<T&&>
吗?
引用折叠是否总是导致
forward<T>
执行与forward<T&&>
相同的操作?
是的。
[我]有什么理由使用
forward<T&&>
吗?
不。
请注意,这是假设视图中唯一的forward
是您在std::
中显示的两个重载。
相关文章:
- 正在折叠转发引用
- EASTL矢量<向量<int>>连续的
- 将函数参数完美转发到函数指针:按值传递呢?
- 转发变量参数列表以模拟 std::thread
- 在按值调用 (c++) 中转发构造函数参数
- 存储稍后要转发的变量参数
- 如何在 C++ 中转发声明 std::set?
- C++使用默认模板参数键入别名和转发声明
- CNTK:->转发或 ->评估某些电脑上的崩溃,而不是其他电脑上的崩溃
- C++20理念:要求表达和完美转发
- 如何在模板中转发右值和左值引用
- 如何转发声明枚举?
- 使用函数指针转发声明作为 lamba 声明
- CAFFE转发网络在for循环中不起作用
- 如何将迭代器调用转发给类的私有成员?
- 转发复制的 std::tuple
- 完美的转发和构造函数
- 是否可以在不扣除的情况下将模板参数转发到 make_*?
- 通过基类接受方法转发派生 UniquePtr 的右值会移动引用而不是复制
- 如何将枚举类转发声明为模板化类的内部类?