Description

Book Synopsis
Peter Gottschling is founder of SimuNova, a company that develops the Matrix Template Library (MTL4) and offers C++ training. He is a member of the ISO C++ standards committee, vice-chair of Germany's programming language standards committee, and founder of the C++ User Group in Dresden. He earned his Ph.D. in computer science at Technische Universität Dresden in 2002.

Table of Contents
Preface xix
Acknowledgments xxv
About the Author xxvii


Chapter 1: C++ Basics 1
1.1 Our First Program 1
1.2 Variables 4
1.3 Operators 12
1.4 Expressions and Statements 22
1.5 Functions 30
1.6 Error Handling 35
1.7 I/O 41
1.8 Arrays, Pointers, and References 52
1.9 Structuring Software Projects 64
1.10 Exercises 69

Chapter 2: Classes 71
2.1 Program for Universal Meaning, Not Technical Details 71
2.2 Members 73
2.3 Setting Values: Constructors and Assignments 78
2.4 Destructors 105
2.5 Method Generation Summary 111
2.6 Accessing Member Variables 112
2.7 Operator Overloading Design 117
2.8 Exercises 126

Chapter 3: Generic Programming 129
3.1 Function Templates 129
3.2 Namespaces and Function Lookup 138
3.3 Class Templates 147
3.4 Type Deduction and Definition 154
3.5 Template Specialization 162
3.6 Non-Type Parameters for Templates 174
3.7 Functors 177
3.8 Lambda 185
3.9 Variable Templates 190
3.10 Programming with Concept(s) 192
3.11 Variadic Templates 200
3.12 Exercises 208

Chapter 4: Libraries 211
4.1 Standard Template Library 211
4.2 Numerics 239
4.3 Meta-programming 252
4.4 Utilities 256
4.5 The Time Is Now 267
4.6 Concurrency 270
4.7 Scientific Libraries Beyond the Standard 282
4.8 Exercises 285

Chapter 5: Meta-Programming 289
5.1 Let the Compiler Compute 289
5.2 Providing and Using Type Information 297
5.3 Expression Templates 318
5.4 Meta-Tuning: Write Your Own Compiler Optimization 328
5.5 Optimizing with Semantic Concepts 354
5.6 Turing Completeness 359
5.7 Exercises 362

Chapter 6: Object-Oriented Programming 365
6.1 Basic Principles 365
6.2 Removing Redundancy 379
6.3 Multiple Inheritance 380
6.4 Dynamic Selection by Sub-typing 387
6.5 Conversion 389
6.6 Advanced Techniques 397
6.7 Exercises 405

Chapter 7: Scientific Projects 407
7.1 Implementation of ODE Solvers 407
7.2 Creating Projects 418
7.3 Modules 430
7.4 Some Final Words 434

Appendix A: Clumsy Stuff 435
A.1 More Good and Bad Scientific Software 435
A.2 Basics in Detail 441
A.3 Real-World Example: Matrix Inversion 449
A.4 Class Details 458
A.5 Method Generation 462
A.6 Template Details 474
A.7 More on Libraries 479
A.8 Dynamic Selection in Old Style 480
A.9 More about Meta-Programming 481
A.10 Linking to C Code 489

Appendix B: Programming Tools 491
B.1 g++ 491
B.2 Debugging 492
B.3 Memory Analysis 496
B.4 gnuplot 498
B.5 Unix, Linux, and Mac OS 498

Appendix C: Language Definitions 501
C.1 Value Categories 501
C.2 Operator Overview 502
C.3 Conversion Rules 504

Bibliography 507
Subject Index 513

Discovering Modern C

Product form

£36.09

Includes FREE delivery

RRP £37.99 – you save £1.90 (5%)

Order before 4pm tomorrow for delivery by Sat 17 Jan 2026.

A Paperback / softback by Peter Gottschling

Out of stock


    View other formats and editions of Discovering Modern C by Peter Gottschling

    Publisher: Pearson Education (US)
    Publication Date: 09/02/2022
    ISBN13: 9780136677642, 978-0136677642
    ISBN10: 0136677649

    Description

    Book Synopsis
    Peter Gottschling is founder of SimuNova, a company that develops the Matrix Template Library (MTL4) and offers C++ training. He is a member of the ISO C++ standards committee, vice-chair of Germany's programming language standards committee, and founder of the C++ User Group in Dresden. He earned his Ph.D. in computer science at Technische Universität Dresden in 2002.

    Table of Contents
    Preface xix
    Acknowledgments xxv
    About the Author xxvii


    Chapter 1: C++ Basics 1
    1.1 Our First Program 1
    1.2 Variables 4
    1.3 Operators 12
    1.4 Expressions and Statements 22
    1.5 Functions 30
    1.6 Error Handling 35
    1.7 I/O 41
    1.8 Arrays, Pointers, and References 52
    1.9 Structuring Software Projects 64
    1.10 Exercises 69

    Chapter 2: Classes 71
    2.1 Program for Universal Meaning, Not Technical Details 71
    2.2 Members 73
    2.3 Setting Values: Constructors and Assignments 78
    2.4 Destructors 105
    2.5 Method Generation Summary 111
    2.6 Accessing Member Variables 112
    2.7 Operator Overloading Design 117
    2.8 Exercises 126

    Chapter 3: Generic Programming 129
    3.1 Function Templates 129
    3.2 Namespaces and Function Lookup 138
    3.3 Class Templates 147
    3.4 Type Deduction and Definition 154
    3.5 Template Specialization 162
    3.6 Non-Type Parameters for Templates 174
    3.7 Functors 177
    3.8 Lambda 185
    3.9 Variable Templates 190
    3.10 Programming with Concept(s) 192
    3.11 Variadic Templates 200
    3.12 Exercises 208

    Chapter 4: Libraries 211
    4.1 Standard Template Library 211
    4.2 Numerics 239
    4.3 Meta-programming 252
    4.4 Utilities 256
    4.5 The Time Is Now 267
    4.6 Concurrency 270
    4.7 Scientific Libraries Beyond the Standard 282
    4.8 Exercises 285

    Chapter 5: Meta-Programming 289
    5.1 Let the Compiler Compute 289
    5.2 Providing and Using Type Information 297
    5.3 Expression Templates 318
    5.4 Meta-Tuning: Write Your Own Compiler Optimization 328
    5.5 Optimizing with Semantic Concepts 354
    5.6 Turing Completeness 359
    5.7 Exercises 362

    Chapter 6: Object-Oriented Programming 365
    6.1 Basic Principles 365
    6.2 Removing Redundancy 379
    6.3 Multiple Inheritance 380
    6.4 Dynamic Selection by Sub-typing 387
    6.5 Conversion 389
    6.6 Advanced Techniques 397
    6.7 Exercises 405

    Chapter 7: Scientific Projects 407
    7.1 Implementation of ODE Solvers 407
    7.2 Creating Projects 418
    7.3 Modules 430
    7.4 Some Final Words 434

    Appendix A: Clumsy Stuff 435
    A.1 More Good and Bad Scientific Software 435
    A.2 Basics in Detail 441
    A.3 Real-World Example: Matrix Inversion 449
    A.4 Class Details 458
    A.5 Method Generation 462
    A.6 Template Details 474
    A.7 More on Libraries 479
    A.8 Dynamic Selection in Old Style 480
    A.9 More about Meta-Programming 481
    A.10 Linking to C Code 489

    Appendix B: Programming Tools 491
    B.1 g++ 491
    B.2 Debugging 492
    B.3 Memory Analysis 496
    B.4 gnuplot 498
    B.5 Unix, Linux, and Mac OS 498

    Appendix C: Language Definitions 501
    C.1 Value Categories 501
    C.2 Operator Overview 502
    C.3 Conversion Rules 504

    Bibliography 507
    Subject Index 513

    Recently viewed products

    © 2026 Book Curl

      • American Express
      • Apple Pay
      • Diners Club
      • Discover
      • Google Pay
      • Maestro
      • Mastercard
      • PayPal
      • Shop Pay
      • Union Pay
      • Visa

      Login

      Forgot your password?

      Don't have an account yet?
      Create account