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

模板进阶

目录

1. 非类型模板参数

2. 模板的特化

2.1 概念 

2.2 函数模板特化 

 2.3 类模板特化

2.3.1 全特化

2.3.2 偏特化

2.3.3 类模板特化应用示例

3 模板分离编译

3.1 什么是分离编译

3.2 模板的分离编译

​3.3 解决方法

 4. 模板总结

5. 代码 


1. 非类型模板参数

 模拟参数分类类型形参与非类型形参。

类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。

非类型参数,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量来使用。

宏和非类型模板参数的对比:

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
#define N 20
template<class T>
class Stack
{
public:

private:
	T _a[N];
	int top;
};
int main()
{
	Stack<int> st1;
	Stack<int> st2;
	//那么这里就有一个问题,如果我st1想开10个大小的空间,st2开20个大小的空间
	//这里用宏的话就不是自己想要的结果,就和重定义数据类型一样,一个栈要存int
	//另一个栈要存double类型也搞不定
	return 0;
}

那么这个时候加一个非类型模板参数就好了。


http://www.kler.cn/news/368806.html

相关文章:

  • 创新业态下金融头部机构在 FICC 平台建设上的思考与实践
  • C++-继承
  • 【Anaconda】Anaconda3 下载与安装教程(Windows 11)
  • pytorh学习笔记——cifar10(六)MobileNet V1网络结构
  • 什么是 VolTE 中的 Slient Redial?它和 CSFB 什么关系?
  • 【学术论文投稿】Windows11开发指南:打造卓越应用的必备攻略
  • 深入了解 Android 中的命名空间:`xmlns:tools` 和其他常见命名空间
  • 算法的学习笔记—翻转单词顺序列(牛客JZ73)
  • HarmonyOS Next API12最新版 端云一体化开发-云函数篇
  • 如何快速分析音频中的各种频率成分
  • Vue学习笔记(六)
  • 纯GO语言开发RTSP流媒体服务器-RTSP推流直播、本地保存录像、录像回放、http-flv及hls协议分发
  • linux中级(NFS服务器)
  • Spring Boot集成Shiro授权
  • 极狐GitLab 17.5 发布 20+ 与 DevSecOps 相关的功能【一】
  • mysqld.log文件过大,清理后不改变所属用户
  • c++设计通信类
  • react 总结+复习+应用加深
  • P11227 [CSP-J 2024] 扑克牌(民间数据)
  • 环 境 配 置
  • 【递归、回溯及搜索】No.4---综合练习
  • 【Spring MVC】请求参数的传递
  • 人工智能岗位英语面试 - 如何确保模型的可靠性和性能
  • wordpress伪静态规则
  • mongodb:增删改查和特殊查询符号手册
  • 安全边际篇