Code Monkey home page Code Monkey logo

cpp-templates-2nd's Introduction

C++ Templates

Second Edition

  • 作者:David Vandevoorde,Nicolai M. Josuttis,Douglas Gregor
  • 译者:陈晓伟
  • 首次发布时间:2017年9月8日(来源)

翻译是译者用自己的**,换一种语言,对原作者想法的重新阐释。鉴于我的学识所限,误解和错译在所难免。如果你能买到本书的原版,且有能力阅读英文,请直接去读原文。因为与之相较,我的译文可能根本不值得一读。

— 云风,程序员修炼之道第2版译者

PDF可在本库的Release页面获取。

本书概述

模板是C++中一个强大的特性,但对模板的误解,并未随着C++语言和开发社区的发展而消弭,从而无法使模板无法发挥其全力。本书的三位作者,同时作为C++专家,展示了如何使用现代模板来构建干净、快捷、高效、容易维护的软件。

第二版对C++11、C++14和C++17标准进行了更新,对改进模板或与模板交互的特性进行了解释,包括可变参数模板、泛型Lambda、类模板参数演绎、编译时if、转发引用和用户定义文字。还深入研究了一些基本的语言概念(比如值类别),并包含了所有标准类型特征。

本书从基本概念和相关语言特征开始,其余部分作为参考。先关注语言,再是编码、高级应用程序和复杂的惯用法。过程中,示例清楚地说明了抽象概念,并演示了模板的最佳实践。

关键特性

  • 准确理解模板的行为,避免陷阱

  • 使用模板编写有效、灵活、可维护的软件

  • 掌握有效的习语和技巧

  • 保持性能或安全的情况下重用源码

  • C++标准库中的泛型编程

  • 预览即将发布的“概念"特性

适读人群

如果您是使用C++的开发人员,想要学习或复习模板,请仔细阅读第1部分。即使已经非常熟悉模板,快速浏览这一部分也有助于熟悉本书使用的编程方式和术语。该部分也涵盖了如何组织模板相关代码的内容。

可以按自己喜欢方式学习。第2部分中有模板更多的许多细节信息,也可以在第3部分中阅读实用的编码技术(并参考第2部分了解相关的语言问题)。如果阅读这本书是为了应对开发中的具体问题,那么后一种方法可能有助于问题的解决。

附录包含了许多在正文中经常提到的信息,我们也试图让其变得更有趣。

根据经验,学习新东西的最好方法是看例子。因此,可以在本书中找到大量的例子。有些只是用几行代码解释一个抽象概念,而另一些是具体应用的完整源码。后一种示例将通过注释来说明需要包含程序代码的文件。可以在这本书的网站http://www.tmplbook.com上找到这些文件。

作者简介

David Vandevoorde在20世纪80年代后期开始用C++编程。从伦斯勒理工学院获得博士学位后,成为惠普C++编译器团队的技术负责人。1999年,加入了爱迪生设计集团(EDG),该集团的C++编译器技术是业界领先的。他是C++标准委员会的活跃成员,也是comp.lang.c++新闻组的主持人(参与创办)。也是《C++ Solutions》的作者,该书是《C++ Programming Language, 3rd Edition》的配套书籍。

Nicolai M. Josuttis因其畅销的标准书籍《The C++ Standard Library - A Tutorial and Reference》而闻名于世,是一名独立技术顾问,为电信、交通、金融和制造业设计面向对象的软件。也是C++标准委员会的活跃成员,也是System Bauhaus的合伙人,System Bauhaus是一个由面向对象系统开发专家组成的德国团体。Josuttis还写过其他几本关于面向对象编程和C++的书。

Douglas Gregor是苹果公司的高级Swift/C++/Objective-C编译工程师,拥有伦斯勒理工学院的计算机科学博士学位,并在印第安纳大学从事博士后工作。

本书相关

cpp-templates-2nd's People

Contributors

cruiseyoung avatar xiaoweichen avatar zhenshenglee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

cpp-templates-2nd's Issues

[BUG]Typo in part1.

content/1/chapter9/3.tex

  • 具有此特性的各种C++编译系统的文档中有介绍

可以release pdf吗

感谢你的整理。

建议可以定时的release pdf.
因为对大家来说。如果 要阅读,还要去配置 latex环境 有点麻烦。

我也不是太了解latex. 好像他可以直接 输出 pdf.
是不是可以直接 release pdf.方便大家取用。

thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.