C++ 模板元编程

元编程侧重点在于“用代码生成代码”,而泛型编程侧重点在于“减小代码对特定数据类型的依赖”,碰巧这两件事C++的模板都可以干。

编程语言特性
假如将模板当成一门全新的编程语言。一门编程语言最少应该具有什么特性呢?
需要有基本的数据类型,比如数字、字符串、布尔值等。
需要某种方法,将基础类型组合起来,表达更高级的概念。比如 C 语言中的 struct, 就是一种组合方法。数组和字典也是组合方法。
需要流程控制。典型的是顺序、分支、循环。
需要输入和输出。
还需要什么语言特性呢?已经没有了,具备上述的特性,基本就可写出任何程序。
下面按照这个顺序,描述一下模板元编程。

基本数据类型
数字

数字可分为整数和小数。怎么用模板类型表示整数呢?大概这样

template <int N>
struct number {
   
    static const int value = N

你可能感兴趣的:(C++,编程语言知识与应用)