静态元编程(也称为“模板元编程”)是一种很棒的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;
}如果想了解更多关于C++静态元编程的知识,那么最好的来源是什么(书籍、网站、在线课件等等)?
发布于 2008-09-21 21:59:49
回答我自己的问题
到目前为止,我找到的最好的介绍是第10章,“C++中的静态元编程”,来自Krzysztof察尔内基和Ulrich W.Eisenecker的生成式编程,方法,工具和应用,ISBN-13: 9780201309775;以及第17章,“元程序”,由David Vandevoorder和Nicolai M.Josuttis著,ISBN-13: 9780201734843。




Todd Veldhuizen有一个很好的教程here。
一般来说,C++编程的一个很好的资源是Andrei Alexandrescu的现代C++设计,ISBN-13: 9780201704310。这本书混合了一些元编程和其他模板技术。特别是元编程,请参阅2.1节“编译时断言”、2.4节“将整数常量映射到类型”、2.6节“类型选择”、2.7节“在编译时检测可转换性和继承性”、2.9节"NullType和EmptyType“和2.10节”类型特征“。
我找到的最好的中级/高级资源是David Abrahams和Aleksey Gurtovoy的C++模板元编程,ISBN-13: 9780321227256
如果您只喜欢一本书,请参阅C++ Templates: The Complete Guide,因为它也是一般模板的权威参考。
发布于 2008-09-21 21:56:19
Andrei Alexandrescu的Modern C++ Design一书涵盖了快速高效的现代C++代码的许多技巧,也是Loki库的基础。
同样值得一提的是Boost库,它们大量使用这些技术,并且通常具有非常高的学习质量(尽管有些库相当密集)。
发布于 2008-09-21 21:56:48
Modern C++ Design,这是Alexandrescu写的一本优秀的书和设计模式框架。警告一句,在读完这本书后,我停止了做C++,并想:“见鬼,我可以选择一种更好的语言,然后免费获得它”。
https://stackoverflow.com/questions/112277
复制相似问题