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 today for delivery by Thu 18 Jun 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: 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