lnlidawei

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

[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/

 

posted on 2024-10-23 02:46  lnlidawei  阅读(9)  评论(0编辑  收藏  举报