Mat*_*lia 15
据我所知:
模板编程只是指经典的"使用模板编程",即"我有一个我希望可以用于任何类型的函数/类,我只是将它作为模板".
它也可以被视为"包罗万象"的类别,包括任何采用模板的编程技术.
通用编程可以综合描述为STL使用的编程范例.
维基百科将其定义为
一种计算机编程风格,其中算法是根据待指定的后续类型编写的,然后在需要时将特定类型作为参数进行实例化
恕我直言,最好说所有容器都设计用于任何类型(不牺牲类型安全性),并且算法设计得足够通用,可以处理任何容器类型(只要明智地使用它们是明智的,即,对无序容器进行排序是没有意义的.
请注意,泛型编程(使用此定义)并不严格要求使用模板,事实上它可以通过继承和动态多态实现(感谢Ben Voigt).
一般来说,我会说模板编程和泛型编程部分重叠,许多人可以互换地使用泛型编程和模板编程这两个术语.
模板元编程是一种编程风格,其中模板用于执行编译时计算/决策/检查,通常在没有模板(静态断言,编译时常量计算,......)的情况下是不可行的.
这样的代码通常是非常人为的,因为C++不是为这种编程风格设计的(实际上后来被"发现"),并且对于C++程序员来说可能看起来也不熟悉,因为它经常接近函数式编程(没有很好的语法设施)因为它而不是遵循C++中通常使用的命令式范例.
| 归档时间: |
|
| 查看次数: |
267 次 |
| 最近记录: |