C++模板 -- 模板隐式实例化和显式实例化

本文介绍了C++中模板的隐式和显式实例化。隐式实例化是在使用模板时,编译器自动为特定模板参数创建实例。而显式实例化允许开发者强制编译器在指定位置创建模板实例,包括模板函数、模板类及其成员。显式实例化适用于库的构建,确保所需模板已预先生成。
摘要由CSDN通过智能技术生成

隐式模板实例化

使用模板函数或模板类时需要实例。
如果这种实例还不存在,则编译器隐式实例化模板参数组合的模板。


显式模板实例化

编译器仅为实际使用的那些模板参数组合而隐式实例化模板。
该方法不适用于构造提供模板的库。
C++ 提供了显式实例化模板的功能,如以下示例所示。

1、 模板函数的显式实例化
要显式实例化模板函数,请在 template 关键字后接函数的声明(不是定义),且函数标识符后接模板参数。

template float twice<float>(float original);

在编译器可以推断出模板参数时,模板参数可以省略。

template int twice(int original);

2、 模板类的显式实例化
要显式实例化模板类,请在 template 关键字后接类的声明(不是定义),且在类标识符后接模板参数。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值