写在前面
今天来写点有点难度的东东:泛型编程与模板元编程。
写这种生僻的东东我是比较排斥的,但谁让我看到boost库中专门对这两个东东分了个大类别呢。开始吧~
概念
不知道大家有没有过这种体验,学数学时整本书上的概念都背熟了,一碰到题目还是手足无措,不知从何下手。泛型和模板元编程这两个概念理解起来还是比较简单的:
泛型编程,即把参数的数据类型作为一个参数传递到函数,本质上就是参数化类型。简单举个例子,如果一个函数需要接收int或float类型的变量,需要使用重载函数编写2个类似的函数代码;这时候如果使用泛型编程,只需要把接收变量的类型泛型化,写一个函数即可实现接收各种数据类型的函数了。
模板元编程,即使用模板实现元编程,是元编程最基本的运用。而所谓元编程,就是编写一个用来编写程序的程序代码。举个例子,使用递归函数的时候,就可以采用模板元编程的方式去替代实现,按元编程的思想和格式写一段代码,计算机就会在编译期自动生成递归调用时需要的所有函数的代码,从而实现计算得到结果。
优缺点
泛型编程是非常棒的技术,可以说是一个只有优点没有缺点的技术了,推荐大家尽快使用起来。
泛型的优点:
- 提升性能。开发历史上抽象能力的上升往往意味着性能的下降,但是泛型并不是!因为使用泛型,可以避免装箱和拆箱操作。
- 类型安全。ArrayList等类中都有强制转换的机制,如果使用泛型编程,则编译器可以直接检查出错误。
- 代码重用。泛型定义一次,就可以用许多不同的类型实例化。

本文介绍了泛型编程和模板元编程的概念,泛型编程通过参数化类型提升代码复用和类型安全性,而模板元编程在编译期实现高效代码生成。尽管泛型编程几乎没有缺点,但可能导致可执行文件增大;模板元编程虽然能提升运行效率,减少代码量,但可读性和移植性较差。
最低0.47元/天 解锁文章
628

被折叠的 条评论
为什么被折叠?



