搞了好几年的C++,自认为谈不上精通也算比较熟悉了吧,但对c++中的template却一直没有深入玩过,对template的印象也仅仅停留在类型参数化,还有模板特化这一点点认识。
然看到STL,BOOST, GTEST库中错综复杂的template用法,一边叹为观止确又一边晦莫如深。而今终于鼓起勇气,准备闯一闯这遍桃花源。
入门教材:
《C++.Template.Metaprogramming》
《Beyond+C.plus.plus.Standard.Library.An.Introduction.to.Boost.chm》
如果只是单纯把template看到是C++提供的一个高级语法格式,那么你可能也会如我一般,刚开始就一头扎进boost源码,弄得一个头两个大。直到看了C++.Template.Metaprogramming, 才发现这里面大有学问。人家叫meta programming.
Template 可以用来做meta programming. meta有元始,超越的的意思。什么是meta programming, 我感觉现在对它的认识还有些浅,先引用wikipedia的解释
Metaprogramming is the writing of

本文介绍了作者对C++元编程(Meta Programming)的初步探索,强调了template不仅仅是一种高级语法,而是一种能够生成和操纵程序的新编程方式。元编程分为编译时计算和程序代码作为数据进行编程,它提供了一种超越传统编程的视角,类似Java和C#的反射机制。通过学习《C++.Template.Metaprogramming》等资源,作者揭示了元编程如何使用模板创建元语言,从而以全新的编程思维进行开发。

1301

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



