首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将rvalue转发为rvalue是用例吗?

将rvalue转发为rvalue是用例吗?
EN

Stack Overflow用户
提问于 2019-08-07 17:18:50
回答 1查看 84关注 0票数 1

我想知道转发:标准实现std::forward的基本方式是两个重载:

  1. lvalues/rvalues (dep )转发为lvalues/rvalues(Dep)。( T)
代码语言:javascript
运行
复制
template<typename T>
T&& forward(lvalue_Reference v){ 
    return static_cast<T&&>(v); 
};  
  1. rvalue转发为rvalue
代码语言:javascript
运行
复制
template<typename T>
T&& forward(rvalue_Reference v){  
    // static-assert: T is not an lvalue-Reference
    return static_cast<T&&>(v); 
};  

第一种情况是在

代码语言:javascript
运行
复制
template<typename T>
void foo(T&& a) { doSomething(std::forward<T>(a)); /* a is lvalue -> matches 1. overload */ }

第二种情况是有道理的,但触发它的例子是什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-07 21:31:22

我相信这是一个复制:

What is the purpose of std::forward()'s rvalue reference overload?

请阅读所附文件:

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2951.html

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

https://stackoverflow.com/questions/57399435

复制
相关文章

相似问题

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