C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond (Paperback)
暫譯: C++ 模板元編程:來自 Boost 及其他的概念、工具與技術 (平裝本)

David Abrahams, Aleksey Gurtovoy

  • 出版商: Addison Wesley
  • 出版日期: 2004-12-10
  • 售價: $2,160
  • 貴賓價: 9.5$2,052
  • 語言: 英文
  • 頁數: 408
  • 裝訂: Paperback
  • ISBN: 0321227255
  • ISBN-13: 9780321227256
  • 相關分類: C++ 程式語言
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

相關主題

商品描述

Table of Contents:

Preface.

Acknowledgments.

Making the Most of This Book.

1. Introduction.

    Getting Started.

    So What's a Metaprogram?

    Metaprogramming in the Host Language.

    Metaprogramming in C++.

    Why Metaprogramming?

    When Metaprogramming?

    Why a Metaprogramming Library?

2. Traits and Type Manipulation.

    Type Associations.

    Metafunctions.

    Numerical Metafunctions.

    Making Choices at Compile Time.

    A Brief Tour of the Boost Type Traits Library.

    Nullary Metafunctions.

    Metafunction Definition.

    History.

    Details.

    Exercises.

3. A Deeper Look at Metafunctions.

    Dimensional Analysis.

    Higher-Order Metafunctions.

    Handling Placeholders.

    More Lambda Capabilities.

    Lambda Details.

    Details.

    Exercises.

4. Integral Type Wrappers and Operations.

    Boolean Wrappers and Operations.

    Integer Wrappers and Operations.

     Exercises.

5. Sequences and Iterators.

    Concepts.

    Sequences and Algorithms.

    Iterators.

    Iterator Concepts.

    Sequence Concepts.

    Sequence Equality.

    Intrinsic Sequence Operations.

    Sequence Classes.

    Integral Sequence Wrappers.

    Sequence Derivation.

    Writing Your Own Sequence.

    Details.

    Exercises.

6. Algorithms.

    Algorithms, Idioms, Reuse, and Abstraction.

    Algorithms in the MPL.

    Inserters.

    Fundamental Sequence Algorithms.

    Querying Algorithms.

    Sequence Building Algorithms.

    Writing Your Own Algorithms.

    Details.

    Exercises.

7. Views and Iterator Adaptors.

    A Few Examples.

    View Concept.

    Iterator Adaptors.

    Writing Your Own View.

    History.

    Exercises.

8. Diagnostics.

    Debugging the Error Novel.

    Using Tools for Diagnostic Analysis.

    Intentional Diagnostic Generation.

    History.

    Details.

    Exercises.

9. Crossing the Compile-Time/Runtime Boundary.

    for each.

    Implementation Selection.

    Object Generators.

    Structure Selection.

    Class Composition.

    (Member) Function Pointers as Template Arguments.

    Type Erasure.

    The Curiously Recurring Template Pattern.

    Explicitly Managing the Overload Set.

    The "sizeof Trick".

    Summary.

    Exercises.

10. Domain-Specific Embedded Languages.

    A Little Language.

    Goes a Long Way.

    DSLs, Inside Out.

    C++ as the Host Language.

    Blitz++ and Expression Templates.

    General-Purpose DSELs.

    The Boost Spirit Library.

    Summary.

    Exercises.

11. A DSEL DesignWalkthrough.

    Finite State Machines.

    Framework Design Goals.

    Framework Interface Basics.

    Choosing a DSL.

    Implementation.

    Analysis.

    Language Directions.

    Exercises.

Appendix A. An Introduction to Preprocessor Metaprogramming.

    Motivation.

    Fundamental Abstractions of the Preprocessor.

    Preprocessor Library Structure.

    Preprocessor Library Abstractions.

    Exercise.

Appendix B. The typename and template Keywords.

    The Issue.

    The Rules.

Appendix C. Compile-Time Performance.

    The Computational Model.

    Managing Compilation Time.

    The Tests.

Appendix D. MPL Portability Summary.

Bibliography.

Index. 

商品描述(中文翻譯)

目錄:

前言
致謝
充分利用本書
1. 介紹
    開始使用
    那麼什麼是元程式?
    在主機語言中的元程式設計
    在 C++ 中的元程式設計
    為什麼要進行元程式設計?
    何時進行元程式設計?
    為什麼需要元程式設計庫?
2. 特性與類型操作
    類型關聯
    元函數
    數值元函數
    在編譯時做出選擇
    Boost 類型特性庫簡介
    零元函數
    元函數定義
    歷史
    詳情
    練習
3. 更深入地了解元函數
    維度分析
    高階元函數
    處理佔位符
    更多 Lambda 功能
    Lambda 詳情
    詳情
    練習
4. 整數類型包裝器與操作
    布林包裝器與操作
    整數包裝器與操作
    練習
5. 序列與迭代器
    概念
    序列與算法
    迭代器
    迭代器概念
    序列概念
    序列相等性
    內建序列操作
    序列類別
    整數序列包裝器
    序列推導
    編寫自己的序列
    詳情
    練習
6. 算法
    算法、慣用法、重用與抽象
    MPL 中的算法
    插入器
    基本序列算法
    查詢算法
    序列構建算法
    編寫自己的算法
    詳情
    練習
7. 視圖與迭代器適配器
    幾個範例
    視圖概念
    迭代器適配器
    編寫自己的視圖
    歷史
    練習
8. 診斷
    調試錯誤小說
    使用工具進行診斷分析
    有意的診斷生成
    歷史
    詳情
    練習
9. 跨越編譯時/運行時邊界
    for each
    實現選擇
    物件生成器
    結構選擇
    類組合
    (成員)函數指標作為模板參數
    類型擦除