Cha*_*via
5
一句话:元编程.
但实际上,你要问的是非常困难的.模板是一个复杂的主题.从本质上讲,模板是元编程的工具:也就是说,它们是生成更多代码的代码.
在现实世界中,模板被用来最经常从相同类/函数模板产生多个类或函数,其中的每一个使用具有不同类型的参数.换句话说,通用编程.这可能是STL中容器类最好的展示.
但是因为模板最终是一个元编程工具,所以它们不仅仅允许您实现泛型类/函数.专业化,部分专业化和SFINAE允许一系列代码生成功能,远远超出实现通用类或功能.实际上,递归模板实例化允许您使用嵌入在C++中的图灵完备元语言进行编程.