Description

Book Synopsis

Peter Gottschling is founder of SimuNova, a company that works on developing 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 xvii
Reasons to Learn C++ xvii

Reasons to Read This Book xviii

The Beauty and the Beast xviii

Languages in Science and Engineering xix

Typographical Conventions xx

Acknowledgments xxiii

About the Author xxv

Chapter 1: C++ Basics 1

1.1 Our First Program 1

1.2 Variables 3

1.3 Operators 10

1.4 Expressions and Statements 21

1.5 Functions 28

1.6 Error Handling 34

1.7 I/O 40

1.8 Arrays, Pointers, and References 47

1.9 Structuring Software Projects 58

1.10 Exercises 63

Chapter 2: Classes 65

2.1 Program for Universal Meaning Not for Technical Details 65

2.2 Members 67

2.3 Setting Values: Constructors and Assignments 72

2.4 Destructors 89

2.5 Method Generation Résumé 95

2.6 Accessing Member Variables 96

2.7 Operator Overloading Design 100

2.8 Exercises 104

Chapter 3: Generic Programming 107

3.1 Function Templates 107

3.2 Namespaces and Function Lookup 115

3.3 Class Templates 123

3.4 Type Deduction and Definition 131

3.5 A Bit of Theory on Templates: Concepts 136

3.6 Template Specialization 136

3.7 Non-Type Parameters for Templates 144

3.8 Functors 146

3.9 Lambda 154

3.10 Variadic Templates 159

3.11 Exercises 161

Chapter 4: Libraries 165

4.1 Standard Template Library 165

4.2 Numerics 186

4.3 Meta-programming 198

4.4 Utilities 202

4.5 The Time Is Now 209

4.6 Concurrency 211

4.7 Scientific Libraries Beyond the Standard 213

4.8 Exercises 215

Chapter 5: Meta-Programming 219

5.1 Let the Compiler Compute 219

5.2 Providing and Using Type Information 226

5.3 Expression Templates 245

5.4 Meta-Tuning: Write Your Own Compiler Optimization 253

5.5 Exercises 283

Chapter 6: Object-Oriented Programming 287

6.1 Basic Principles 287

6.2 Removing Redundancy 298

6.3 Multiple Inheritance 299

6.4 Dynamic Selection by Sub-typing 306

6.5 Conversion 308

6.6 CRTP 316

6.7 Exercises 320

Chapter 7: Scientific Projects 321

7.1 Implementation of ODE Solvers 321

7.2 Creating Projects 332

7.3 Some Final Words 345

Appendix A: Clumsy Stuff 347

A.1 More Good and Bad Scientific Software 347

A.2 Basics in Detail 353

A.3 Real-World Example: Matrix Inversion 362

A.4 Class Details 371

A.5 Method Generation 375

A.6 Template Details 386

A.7 Using std::vector in C++03 391

A.8 Dynamic Selection in Old Style 392

A.9 Meta-Programming Details 392

Appendix B: Programming Tools 403

B.1 gcc 403

B.2 Debugging 404

B.3 Memory Analysis 408

B.4 gnuplot 409

B.5 Unix, Linux, and Mac OS 411

Appendix C: Language Definitions 413

C.1 Value Categories 413

C.2 Operator Overview 413

C.3 Conversion Rules 416

Bibliography 419

Index 423

Discovering Modern C

Product form

£33.29

Includes FREE delivery

RRP £36.99 – you save £3.70 (10%)

Order before 4pm tomorrow for delivery by Tue 20 Jan 2026.

A Paperback / softback by Peter Gottschling

1 in stock


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

    Publisher: Pearson Education (US)
    Publication Date: 30/12/2015
    ISBN13: 9780134383583, 978-0134383583
    ISBN10: 0134383583

    Description

    Book Synopsis

    Peter Gottschling is founder of SimuNova, a company that works on developing 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 xvii
    Reasons to Learn C++ xvii

    Reasons to Read This Book xviii

    The Beauty and the Beast xviii

    Languages in Science and Engineering xix

    Typographical Conventions xx

    Acknowledgments xxiii

    About the Author xxv

    Chapter 1: C++ Basics 1

    1.1 Our First Program 1

    1.2 Variables 3

    1.3 Operators 10

    1.4 Expressions and Statements 21

    1.5 Functions 28

    1.6 Error Handling 34

    1.7 I/O 40

    1.8 Arrays, Pointers, and References 47

    1.9 Structuring Software Projects 58

    1.10 Exercises 63

    Chapter 2: Classes 65

    2.1 Program for Universal Meaning Not for Technical Details 65

    2.2 Members 67

    2.3 Setting Values: Constructors and Assignments 72

    2.4 Destructors 89

    2.5 Method Generation Résumé 95

    2.6 Accessing Member Variables 96

    2.7 Operator Overloading Design 100

    2.8 Exercises 104

    Chapter 3: Generic Programming 107

    3.1 Function Templates 107

    3.2 Namespaces and Function Lookup 115

    3.3 Class Templates 123

    3.4 Type Deduction and Definition 131

    3.5 A Bit of Theory on Templates: Concepts 136

    3.6 Template Specialization 136

    3.7 Non-Type Parameters for Templates 144

    3.8 Functors 146

    3.9 Lambda 154

    3.10 Variadic Templates 159

    3.11 Exercises 161

    Chapter 4: Libraries 165

    4.1 Standard Template Library 165

    4.2 Numerics 186

    4.3 Meta-programming 198

    4.4 Utilities 202

    4.5 The Time Is Now 209

    4.6 Concurrency 211

    4.7 Scientific Libraries Beyond the Standard 213

    4.8 Exercises 215

    Chapter 5: Meta-Programming 219

    5.1 Let the Compiler Compute 219

    5.2 Providing and Using Type Information 226

    5.3 Expression Templates 245

    5.4 Meta-Tuning: Write Your Own Compiler Optimization 253

    5.5 Exercises 283

    Chapter 6: Object-Oriented Programming 287

    6.1 Basic Principles 287

    6.2 Removing Redundancy 298

    6.3 Multiple Inheritance 299

    6.4 Dynamic Selection by Sub-typing 306

    6.5 Conversion 308

    6.6 CRTP 316

    6.7 Exercises 320

    Chapter 7: Scientific Projects 321

    7.1 Implementation of ODE Solvers 321

    7.2 Creating Projects 332

    7.3 Some Final Words 345

    Appendix A: Clumsy Stuff 347

    A.1 More Good and Bad Scientific Software 347

    A.2 Basics in Detail 353

    A.3 Real-World Example: Matrix Inversion 362

    A.4 Class Details 371

    A.5 Method Generation 375

    A.6 Template Details 386

    A.7 Using std::vector in C++03 391

    A.8 Dynamic Selection in Old Style 392

    A.9 Meta-Programming Details 392

    Appendix B: Programming Tools 403

    B.1 gcc 403

    B.2 Debugging 404

    B.3 Memory Analysis 408

    B.4 gnuplot 409

    B.5 Unix, Linux, and Mac OS 411

    Appendix C: Language Definitions 413

    C.1 Value Categories 413

    C.2 Operator Overview 413

    C.3 Conversion Rules 416

    Bibliography 419

    Index 423

    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