快捷索引

IPB Image
作为一种高阶C++编程技术,模板元编程突出编译期决策在整个程序构建和运行过程中的地位,努力将计算从运行期提前至编译期,不但有效地防止程序错误被传播到运行期,而且能够实现以静态代码控制动态代码的目标。使计算尽可能完成于编译期也提高了最终程序的运行性能。
C++模板元编程诞生于十多年前,最初的研究方向是编译期数值计算,后来的实践发展证明,此项技术在类型计算领域可释放出更大的能量。近几年来,由于Andrei Alexandrescu的Loki程序库对元编程的前卫应用,Boost元编程库日益展示出重要的实用价值,C++模板元编程从最初被认为是对模板“过于聪明”的使用,到逐步被学界重视并研究,时至今日,这一高阶编程技术已然为业界所接受。
C++编程书籍不计其数,但涉及模板元编程的书籍屈指可数。作为Loki的传播者,《Modern C++ Design》对元编程的概念和原理的解释不够细致—这不奇怪,那本书的兴趣更多在于元编程在静态设计模式上的应用。David Vandevoorde和Nicolai M. Josuttis所著的《C++ Templates》,以及Krzysztof Czarnecki和Ulrich W.Eisenecker的著作《Generative Programming》,对模板元编程分别做了概述和总结,它们同样不是专注于元编程自身。Boost的创始人之一David Abrahams与Boost MPL的作者Aleksey Gurtovoy的这部著作第一次系统地阐述了模板元编程。
本书从内容上分为理论和实践两部分。前八章和部分附录内容以Boost元编程库为主线概述模板元编程的概念、技术、工具及陷阱。其余篇幅则主要讨论模板元编程的一个重要的应用:DSEL(Domain-Specific Embedded Languages,领域特定的嵌入式语言)的设计与实现。虽然只有少数C++程序员需要创建DSEL,但了解其原理和实现大有裨益,有利于用好他人创建的DSEL,更重要的是,还可从中领会模板元编程的运用手法以及分析、解决实际问题的方法。
与常规C++编程技术相比,模板元编程技术较为复杂。因此不少C++程序员以为它高不可攀,或以为它只是库设计者的工具。虽然这项技术一直都没有疏远我们,然而我们自己的不作为却使它显得遥不可及。实际上,面向对象编程与泛型编程、运行期与编译期以及动态与静态之间并不互相排斥,而是对立统一的。从更高处审视C++程序设计,将多种编程范型优势互补,无疑可以开发出对程序员和最终用户而言更强大、更美妙的应用。
下一代C++标准C++0x将从语言和程序库两方面进一步增强对模板编程的支持,作为模板编程的一个高阶子集,模板元编程也将从中受益。实际上,C++0x还将对模板元编程提供更友好的支持,(部分)Boost元编程程序库将会成为C++0x标准库的一个组成部分。模板元编程与普通C++程序员渐行渐近。现在,就让这本书引领你开始奇妙之旅!


概述

本书是关于C++模板元编程的著作。本书主要概述Traits和类型操纵、深入探索元函数、整型外覆器和操作、序列与迭代器、算法、视图与迭代器适配器、诊断、跨越编译期和运行期边界、领域特定的嵌入式语言、DSEL设计演练,另外附录部分还概述了预处理元编程概述、typename和template关键字。本书通过理论联系实践,深入讲解了C++高级编程技术。
本书适合中、高阶C++程序员等参考。
本书清晰地揭示了现代C++最具威力的使用手法,将实际的工具和技术交付普通程序员的手中。
元编程是产生或操纵程序码的程序。自从泛型编程被引入C++中以来,程序员们已经发现用于当程序被编译时对其进行操纵的无数“tricks template”,这些tricks有效地消除了横亘在程序和元编程之间的藩篱。尽管C++专家们对这种能力的兴奋已经波及整个C++社区,然而它们的实际应用对于大多数程序员来说仍然是遥不可及。本书解释了何谓元编程以及如何最佳化地使用它,为你在自己的工作中有效地使用模板元编程提供了必备的基础。
本书瞄准于任何熟悉标准模板库(Standard Template Library,STL)惯用法的程序员。C++高级用户会获得对既有工作新的洞察以及对元编程领域新的认知。那些已经学习了一些高级模板技术的中级程序员将会明白这些tricks是从哪儿适合大画面的,并将获得有秩序地使用它们所需的概念基础。对于那些已经嗅到元编程味道但对其仍然感到神秘的程序员而言,最终将获得对元编程如何工作、何时工作以及为何工作的清晰的理解。无论如何,所有读者都将获得一个可以自由支配的、威力空前的新工具:Boost Metaprogramming Library。
附赠光盘内容包含所有Boost C++ 程序库:Boost Metaprogramming Library及其参考文件,还包含所有随书代码示例以及大量的补充材料。

作者及译者

http://www.boost.org/users/people/dave_abrahams.jpg
David Abrahams,Boost C++程序库开发组的一名发起成员和主持人。自从1996年起,Dave就是一名ANSI/ISO C++委员会成员,他因对C++标准程序库异常处理的理论、规格和实现的贡献而名声鹊起。他的公司Boost Consulting提供了与Boost有关的支持和开发服务,以及软件构建艺术的职业培训。

Aleksey Gurtovoy,MetaCommunications的一名技术领导,并且是Boost C++社区的功勋成员。他是Boost Metaprogramming Library最初的作者。自1993年起他就开始研究C++并使用它工作。Aleksey拥有俄罗斯克拉斯诺雅大学博士学位。

IPB Image
在小红伞avira_antivir_personal_zhcn下通过。

令:欢迎大家一起交流高阶C++,可通过jacklinshi1004@gmail.com联系~



会员福利

资源无源时,可利用百度网盘 & 迅雷云盘取回

此内容仅供注册用户。请 %登录%.

神秘内容,请 登录 / 注册 后查看

会员可见全站福利 !




文章类别:

本文链接: http://www.books51.com/24655.html

【点击下方链接,复制 & 分享文章网址】

C++模板元编程中文版随书光碟 → http://www.books51.com/24655.html

上一篇:

下一篇:

0 ratings, 0 votes0 ratings, 0 votes (0 次顶, 0已投票)
你必须注册后才能投票!
Loading...

添加新评论