当前位置: 首页 > news >正文

C++ 完美转发(泛型模板函数)

完美转发是指在泛型模板函数中,以参数的原始形式(左值或右值)传递给目标函数,从而避免不必要的拷贝或移动操作。
不使用完美转发,本质上是右值在传递中,默认变成左值,触发深拷贝。

#include <iostream>
#include <utility> // 必须包含此头文件以使用std::forwardusing namespace std;// 处理左值引用
void process(int& x) {cout << "Lvalue reference: " << x << endl;
}// 处理右值引用
void process(int&& x) {cout << "Rvalue reference: " << x << endl;
}// 泛型函数,使用完美转发
template <typename T>
void forwardExample(T&& arg) {process(std::forward<T>(arg)); // 保持原始值类别// process(arg); // 不使用完美转发
}int main() {int a = 10;forwardExample(a);  // 传递左值forwardExample(20); // 传递右值return 0;
}
http://www.dtcms.com/a/265252.html

相关文章:

  • ssh连接服务器,有了ip和private key,还需要其它吗
  • 技术学习_大语言模型
  • el-button/button置灰及原理
  • 应急响应类题练习——玄机第一章 应急响应- Linux入侵排查
  • 代码随想录算法训练营第四十三天|动态规划part10
  • 2025-6GESP六级编程题分析
  • 如何保证缓存和数据库的双写一致性
  • Python训练营Day1
  • 软件测试用例大全
  • 基于大模型的智能体中由自主性引发的安全风险综述
  • CLIP heat map generation
  • 【深度学习:进阶篇】--4.2.词嵌入和NLP
  • MinHook 如何对 .NET 母体 CoreCLR 进行拦截
  • 在米联客4EV上部署tinyriscv
  • 【深度学习新浪潮】国内零样本抗体设计的科研进展如何?
  • docker-compose.yml 文件详解——AI教你学Docker
  • 从一个开发的角度切入mysql索引,查询优化
  • C Primer Plus 第6版 编程练习——第6章(上)
  • 设计模式-享元模式
  • JAVA内存区域划分
  • WEB测试总结
  • ubuntu 安装neo4j
  • 七、分工说明
  • 南方大暴雨及洪水数据分析与可视化
  • 爬虫从入门到精通(22) |TLS指纹
  • 【RHCSA-Linux考试题目笔记(自用)】servera的题目
  • 【C++】--入门
  • HTTPS详解:原理 + 加解密过程 + 面试问答
  • SpringBoot:整合quartz实现定时任务-基础篇
  • 从零用java实现 小红书 springboot vue uniapp (12)实现分类筛选与视频笔记功能