C++模板元编程(C++ template metaprogramming)

[复制链接]
楼主: elecintop
手机看帖
扫描二维码
随时随地手机跟帖
elecintop|  楼主 | 2015-3-24 21:35 | 显示全部楼层
进一步学习

C++ 确实比较复杂,这可能是因为,虽然 C++ 语言层次比较低,但它却同时可以实现很多高级特性。进一步学习 C++ 模板元编程的途径很多:

1、C++ 标准库的 STL 可能是最好的学习案例,尤其是其容器、迭代器、通用算法、函数类模板等部件,实现机制很巧妙;

使用特权

评论回复
elecintop|  楼主 | 2015-3-24 21:36 | 显示全部楼层
2、另外一个 C++ 库也值得一看,那就是 Boost 库,Boost 的元编程库参考文献[16];

使用特权

评论回复
elecintop|  楼主 | 2015-3-24 21:36 | 显示全部楼层
3、很推荐《深入实践C++模板编程》这本书,这篇博文大量参考了这本书;

使用特权

评论回复
elecintop|  楼主 | 2015-3-24 21:36 | 显示全部楼层
4、wikibooks.org 上有个介绍 C++ 各种编程技巧书:More C++ Idioms,文献[15];

使用特权

评论回复
elecintop|  楼主 | 2015-3-24 21:37 | 显示全部楼层
5、文献[17]列了 C++ 模板的参考书,共四本;
6、好多东西,书上讲的比较浅显,而且不全面,有时候直接看 C++ 标准(最新 C++11)可能更为高效,C++ 标准并不是想象中那样难读,C++ 标准委员会网站的 Papers 也很值得看,文献[3]。

使用特权

评论回复
elecintop|  楼主 | 2015-3-24 21:37 | 显示全部楼层
参考文献:

深入实践C++模板编程,温宇杰著,2013(到当当网);
C++程序设计语言,Bjarne Stroustrup著,裘宗燕译,2002(到当当网);
C++标准,ISO/IEC 14882:2003,ISO/IEC 14882:2011(到ISO网站,C++标准委员会);
wikipedia.org(C++, 模板, Template metaprogramming, Curiously recurring template pattern, Substitution failure is not an erro (SFINAE), Expression templates, C++11, C++14);
What does a call to ‘this->template [somename]‘ do? (stackoverflow问答);
Advanced C++ Lessons,chapter 6,在线教程,2005(到网站);
C++ TUTORIAL – TEMPLATES – 2015,bogotobogo.com 网上教程(到网站);
C++ Templates are Turing Complete,Todd L. Veldhuizen,2003(作者网站已经停了,archive.org 保存的版本,archive.org 可能被限制浏览);
Metaprogramming in C++,Johannes Koskinen,2004(中科大老师保存的版本);
C++ Template Metaprogramming in 15ish Minutes(Stanford 课程 PPT,到网站);
Template Metaprograms,Todd Veldhuizen,1995(archive.org 保存 Todd Veldhuizen 主页,可能限制访问,在线 PS 文件转 PDF 文件网站);
Expression Templates,Todd Veldhuizen,1995;
C++ Templates as Partial Evaluation,Todd Veldhuizen,1999;
Erwin Unruh 写的第一个模板元编程程序;
wikibooks.org(C++ Programming/Templates/Template Meta-Programming,More C++ Idioms);
THE BOOST MPL LIBRARY online docs(到网站);
Best introduction to C++ template metaprogramming?(stackoverflow问答)。

使用特权

评论回复
HORSE7812| | 2015-3-25 09:13 | 显示全部楼层
mark

使用特权

评论回复
supaopcb| | 2015-4-15 08:53 | 显示全部楼层
顶一个

使用特权

评论回复
冒泡的鱼儿| | 2015-11-23 22:56 | 显示全部楼层
C++的魅力就在于它的元模板,学习下

使用特权

评论回复
daily媛媛| | 2018-12-17 16:34 | 显示全部楼层
1.线程和进程之间的区别

2.常见排序算法;快排的实现原理

3.链表的实现,插入删除。

4.Linux内核相关

5.memNcpy的具体实现含义

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则