[cpp]: template的基本元素:概念和要求
一、template 基本概念
1.、概念(concept): 概念的功能,对template中的参数(T/E)进行约束/限制。‘概念(concept)’,是一组‘要求(requirements)’的集合。
2、要求(requirements): 对template中的参数(T/E),进行约束/限制。
二、template 实例
1、 程序代码
1 #include <iostream>
2
3
4 using namespace std;
5
6
7 // rename a type
8 using integer = int;
9 using i32 = int;
10
11
12 // define conception C1 for constraint T;
13 // constraint: sizeof(T) == sizeof(int);
14 // memory size of type T is equal to memory size of type int.
15 template <class T>
16 concept C1 = sizeof(T) == sizeof(int);
17
18
19 // using 'C1' to constraint type 'E',
20 // sizeof(E) == sizeof(int)
21 template<C1 E>
22 void msg()
23 {
24 cout << "[prompt]#\t msg()..." << endl;
25 }
26
27
28 int main(int argc, char* argv[], char* envp[])
29 {
30
31 msg<integer>();
32 msg<i32>();
33
34 return 0;
35 }
2、 运行结果
1 [prompt]# msg()...
2 [prompt]# msg()...
三、参考资料
1. templates - https://en.cppreference.com/w/cpp/language/templates
2. c++ 在线编译工具 - https://coliru.stacked-crooked.com/
本文由 lnlidawei 原创、整理、转载,本文来自于【博客园】; 整理和转载的文章的版权归属于【原创作者】; 转载或引用时请【保留文章的来源信息】:https://www.cnblogs.com/lnlidawei/p/18494248