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

C++新特性——外部模板

1、What

        C++11标准引入的一种机制,允许在头文件中声明模板,但仅在一个单独的源文件中显式实例化这些模板。这一机制使得编译器只需要在源文件中实例化模板一次,其它源文件引用已经实例化的模板,从而减少编译时间和生成的二进制文件大小。

2、Why

2.1 优化编译时间

模板实例化导致编译器在每次包含模板头文件的时候都进行实例化,增加了编译时间。通过外部模板,可以限制模板实例化的次数,从而减少编译时间。

2.2 解决二进制膨胀

在多个源文件中包含同一个模板头文件,导致生成的二进制文件中包含多次相同的模板实例化,从而增加二进制文件的大小。外部模板可以确保模板实例在二进制文件中只出现一次。

2.3 代码组织

将模板实例化集中在一个源文件中,可以使代码更加整洁和组织化。

3、When

3.1 大型项目

在大型项目中,模板的使用通常非常广泛,使用外部模板可以显著减少编译时间和二进制文件大小。

3.2 模板库

开发模板库时,使用外部模板可以提高库的可用性和效率。

3.3 性能敏感

对于性能敏感的应用,减少编译时间和二进制文件大小是非常重要的,此时可以考虑使用外部模板。

4、How

4.1 在头文件中声明模板

在头文件

http://www.lryc.cn/news/458570.html

相关文章:

  • 字节跳动青训营开始报名了!
  • 从SQL Server过渡到PostgreSQL:理解模式的差异
  • 刷题 排序算法
  • 【python3】tornado高性能编程
  • 构建高效购物推荐系统:SpringBoot实战
  • docker tar包安装 docker-26.1.4.tgz
  • Github 2024-10-12 Rust开源项目日报 Top10
  • Spring Cloud 微服务架构及其应用:设计、实现与优化
  • Rider + xmake DX12 开发环境
  • 控制台java原生工具打包jar文件
  • MySQL主从同步
  • ansible 学习之变量
  • 【知识科普】Markdown语法内容看这一篇就够了
  • 什么是智能合约?
  • Oracle低代码平台apex介绍
  • 【读书笔记·VLSI电路设计方法解密】问题12:制造MOSFET晶体管的主要工艺步骤是什么
  • 内存分析工具的使用——AddressSanitizer
  • linux使用nmcli 管理wifi的命令
  • deepin20.9安装部署 |deepin20.9镜像下载 |基本命令 |手动分区 |开启远程ssh服务
  • 使用PL/SQL Deverloper过程遇见的问题
  • pikachu靶场总结(三)
  • onvif相关的http api有哪些功能点
  • AI大模型是如何改变我们的日常生活的?
  • kubernetes部署Nexus(Helm3)
  • PDF无法导出中文
  • 【docker】mysql8.0 的 docker 安装
  • vue3中父组件与子组件关系的理解 ------类比java中的启动类,类,对象等概念来解释一下
  • Java设计模式——装饰模式
  • 【TouchSocket 和 client.GetStream 区别】
  • 怎么利用商品详情API接口实现数据获取与应用?