博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++11 完美转发 std::forward()
阅读量:4211 次
发布时间:2019-05-26

本文共 708 字,大约阅读时间需要 2 分钟。

std::forward

右值引用类型是独立于值的,一个右值引用参数作为函数的形参,在函数内部再转发该参数的时候它已经变成一个左值,并不是他原来的类型。

如果我们需要一种方法能够按照参数原来的类型转发到另一个函数,这种转发类型称为完美转发。

template
void print(T& t){ cout << "lvalue" << endl;}template
void print(T&& t){ cout << "rvalue" << endl;}template
void TestForward(T && v){ cout<<"TestForward &&"<
(v)); print(std::move(v));}template
void TestForward(T & v){ cout<<"TestForward &"<
(v)); print(std::move(v));}int main(){ TestForward(1); int x = 1; TestForward(x); TestForward(std::forward
(x)); return 0;}

输出:

TestForward &&
lvalue
rvalue
rvalue
TestForward &
lvalue
rvalue
rvalue
TestForward &&
lvalue
rvalue
rvalue

转载地址:http://fbwmi.baihongyu.com/

你可能感兴趣的文章
反病毒专家谈虚拟机技术 面临两大技术难题
查看>>
几种典型的反病毒技术:特征码技术、覆盖法技术等
查看>>
Software Security Testing软件安全测试
查看>>
SQL注入漏洞全接触--进阶篇
查看>>
SQL注入漏洞全接触--高级篇
查看>>
SQL注入法攻击一日通
查看>>
论文浅尝 | 通过共享表示和结构化预测进行事件和事件时序关系的联合抽取
查看>>
论文浅尝 | 融合多粒度信息和外部语言知识的中文关系抽取
查看>>
论文浅尝 | GMNN: Graph Markov Neural Networks
查看>>
廖雪峰Python教程 学习笔记3 hello.py
查看>>
从内核看epoll的实现(基于5.9.9)
查看>>
python与正则表达式
查看>>
安装.Net Framework 4.7.2时出现“不受信任提供程序信任的根证书中终止”的解决方法
查看>>
input type=“button“与input type=“submit“的区别
查看>>
解决Github代码下载慢问题!
查看>>
1.idea中Maven创建项目及2.对idea中生命周期的理解3.pom文件夹下groupId、artifactId含义
查看>>
LeetCode-栈|双指针-42. 接雨水
查看>>
stdin,stdout,stderr详解
查看>>
Linux文件和设备编程
查看>>
文件描述符
查看>>