8、C++模板深度解析:从基础到高级应用

C++模板深度解析:从基础到高级应用

1. 模板实践中的关键概念

1.1 原型(Archetypes)

当追踪器提供的接口是其所追踪模板的最低要求,且这种最低追踪器不生成运行时输出时,它有时被称为原型。原型可用于验证模板实现是否未引入超出预期的语法约束。通常,模板实现者会为模板库中识别出的每个概念开发一个原型。

1.2 代码组织与编译模型

1.2.1 源文件组织

源文件在头文件和 .C 文件中的组织是所谓单一定义规则(One-Definition Rule,ODR)的实际结果。该规则的详细讨论可在附录 A 中找到。

1.2.2 包含模型与分离模型之争
  • 包含模型 :是一种实用的解决方案,很大程度上由 C++ 编译器实现的现有实践决定。不过,最初的 C++ 实现不同,模板定义的包含是隐式的,这造成了一种分离的假象。
  • 分离模型 :在标准化过程中,经过激烈辩论,支持更解耦模型的观点获得了足够支持,最终形成了分离模型。这是一个理论模型,并非基于现有实现,其首个实现直到 2002 年 5 月才发布。
1.2.3 预编译头文件扩展设想

人们有时会设想扩展预编译头文件的概念,以便在一次编译中加载多个头文件,从而实现更细粒度的预编译。但主要障碍是预处理器,一个头文件中的宏可能会完全改变后续头文件的含义。而且,头文件预编译完成后,宏处理也已结束,很难为其他头文件引起的预处理器效果去修补预编译头文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值