C+的最佳介绍+;模板元编程? 静态元编程(AKA模板元编程)是一个伟大的C++技术,允许编译时程序的执行。当我读到这个规范的元编程示例时,我脑海中的一个灯泡熄灭了: #include <iostream> using namespace std; template< int n > struct factorial { enum { ret = factorial< n - 1 >::ret * n }; }; template<> struct factorial< 0 > { enum { ret = 1 }; }; int main() { cout << "7! = " << factorial< 7 >::ret << endl; // 5040 return 0; } #包括 使用名称空间std; 模板 结构阶乘{enum{ret=factorial::ret*n};}; 模板 结构阶乘{enum{ret=1};}; int main(){ Cux谷歌Alxand ReSuCu,现代C++设计:泛型编程和设计模式应用< P>是我读过的最好的介绍之一。它包括模板元编程的实际有用例子。还看一看同伴库。 < P> Andrei Alexandrescu的书涵盖了很多这方面的其他技巧和快速高效的方法。NT现代C++代码,是库的基础。

C+的最佳介绍+;模板元编程? 静态元编程(AKA模板元编程)是一个伟大的C++技术,允许编译时程序的执行。当我读到这个规范的元编程示例时,我脑海中的一个灯泡熄灭了: #include <iostream> using namespace std; template< int n > struct factorial { enum { ret = factorial< n - 1 >::ret * n }; }; template<> struct factorial< 0 > { enum { ret = 1 }; }; int main() { cout << "7! = " << factorial< 7 >::ret << endl; // 5040 return 0; } #包括 使用名称空间std; 模板 结构阶乘{enum{ret=factorial::ret*n};}; 模板 结构阶乘{enum{ret=1};}; int main(){ Cux谷歌Alxand ReSuCu,现代C++设计:泛型编程和设计模式应用< P>是我读过的最好的介绍之一。它包括模板元编程的实际有用例子。还看一看同伴库。 < P> Andrei Alexandrescu的书涵盖了很多这方面的其他技巧和快速高效的方法。NT现代C++代码,是库的基础。,c++,templates,metaprogramming,C++,Templates,Metaprogramming,同样值得一提的是图书馆,它们大量使用这些技术,通常具有非常高的学习质量(尽管有些非常密集)。Veldhuizen的原始论文很好。如果你想读一整本书,那么有一本Vandevoord的书“C++模板完整指南”当你准备好了硕士课程时,试试Alexandrescu的现代C++设计。 < P>,一本由Alexandrescu设计的优秀的书籍和设计模式框架。警告字,在读了这本书之后,我停止了C++,并想“到底是什么,我可以选择一种更好的语言,免费获得它”。.让人想到的两本好书是: 现代C++设计/ And

同样值得一提的是图书馆,它们大量使用这些技术,通常具有非常高的学习质量(尽管有些非常密集)。

Veldhuizen的原始论文很好。如果你想读一整本书,那么有一本Vandevoord的书“C++模板完整指南”当你准备好了硕士课程时,试试Alexandrescu的现代C++设计。

< P>,一本由Alexandrescu设计的优秀的书籍和设计模式框架。警告字,在读了这本书之后,我停止了C++,并想“到底是什么,我可以选择一种更好的语言,免费获得它”。.

让人想到的两本好书是:

  • 现代C++设计/ Andrei Alexandrescu(实际上,尽管名字有7年了)
  • C++模板:完整指南/Vandevoorde&Josuttis
这是一个相当深入的领域,所以像这样的一本好书肯定会被推荐到网站上。一些更先进的技术会让你花一段时间研究代码,找出它们是如何工作的!

[回答我自己的问题]

到目前为止,我发现最好的介绍是Krzysztof Czarnecki和Ulrich W.Eisenecker的《生成性编程、方法、工具和应用程序》第10章“C++中的静态元编程”,ISBN-13:9780201309775;以及第17章“元程序”C++模板:David Vandevoorder和Nicolai M. Josuttis的完整指南,ISBN-13:9780201734843。

Todd Veldhuizen有一个很好的教程

<> P>一个很好的C++编程资源,是Andrei Alexandrescu的现代C++设计,ISBN-13:9780201704310,这本书混合了一点元编程和其他模板技术。对于元编程,特别是,参见第2.1节“编译时断言”,2.4“映射到类型的积分常数”,2.6“类型选择”,2.7。“在编译时检测可转换性和继承”,2.9“NullType和
EmptyType
”和2.10“类型特征”

<> P> David Abrahams和Aleksey Gurtovoy发现的最好的中间/高级资源是C++模板元编程,ISBN-13:9780321227256<P/>

如果你只想一本书,就可以得到C++模板:完全指南,因为它也是模板的一般参考。

< P>书不会有大的列表,因为有很多经验的人的列表是有限的。模板元编程在2000第一个C++模板编程研讨会开始,到目前为止,许多被点名的作者都参加了。(IIRC,Andrei没有参加。)这些先驱极大地影响了这个领域,基本上应该写的东西现在已经写好了。就我个人而言,我建议Vandevorde&Josuttis。如果你是这个领域的新手,Alexandrescu的书很难读。

“见鬼,我可以选择一种更好的语言,然后免费获得它。”嗯,你什么意思?我对“免费”特别困惑C++模板模板元编程给了你各种新的能力,比如传递类型或列表类型作为参数等等。这些能力大部分都是动态类型的语言,比如Python,语法好。如果你正在寻找一种语言,你可以快速编写正确的程序,Py。THON比C++好。如果你需要C++提供的其他东西,那么添加C++的Lisp能力比试图C++语言更好。灯泡已经“关闭”或“on”。绝对关闭。Todd Veldhuizen的链接已经过时。我相信它:现在链接固定,谢谢!链接又坏了!谢谢。,我读了这篇文章,虽然我发现这篇文章更有趣:(它有两个部分)。这是Walter E.Brown的一篇演讲:现代模板元编程:概要