Description

Book Synopsis
Rainer Grimm has worked as a software architect, team lead, and instructor since 1999, and offered seminars on C++, Python, and proprietary software since 2002. He writes regularly on C++, Python, and Haskell, speaks at conferences on programming issues, and blogs weekly in English (modernescpp.com) and German (www.grimm-jaud.de/index.php/blog). Now an independent instructor, he offers seminars on modern C++ and Python. He has authored several books on modern C++, concurrency, and related topics.

Table of Contents
List of selected C++ Core Guidelines xiii
List of figures xxiii
List of tables xxvii
Foreword xxix
Preface xxxi
Acknowledgments xxxvii
About the author xxxix

Part I: The Guidelines 1

Chapter 1: Introduction 3
Target readership 3
Aim 4
Non-aims 4
Enforcement 4
Structure 4
Major sections 5

Chapter 2: Philosophy 7

Chapter 3: Interfaces 15
The curse of non-const global variables 16
Dependency injection as a cure 18
Making good interfaces 20
Related rules 25

Chapter 4: Functions 27
Function definitions 28
Parameter passing: in and out 32
Parameter passing: ownership semantics 38
Value return semantics 42
Other functions 46
Related rules 52

Chapter 5: Classes and Class Hierarchies 53
Summary rules 54
Concrete types 58
Constructors, assignments, and destructors 59
Class hierarchies 98
Overloading and overloaded operators 117
Unions 126
Related rules 129

Chapter 6: Enumerations 131
General rules 131
Related rules 137

Chapter 7: Resource Management 139
General rules 140
Allocation and deallocation 145
Smart pointers 150
Related rules 164

Chapter 8: Expressions and Statements 165
General 166
Declarations 168
Expressions 186
Statements 199
Arithmetic 204
Related rules 210

Chapter 9: Performance 213
Wrong optimizations 214
Wrong assumptions 214
Enable optimization 218
Related rules 230

Chapter 10: Concurrency 231
General guidelines 232
Concurrency 245
Parallelism 266
Message passing 269
Lock-free programming 273
Related rules 277

Chapter 11: Error Handling 279
Design 281
Implementation 283
If you can't throw 288
Related rules 292

Chapter 12: Constants and Immutability 293
Use const 294
Use constexpr 298

Chapter 13: Templates and Generic Programming 301
Use 302
Interfaces 305
Definition 320
Hierarchies 330
Variadic templates 332
Metaprogramming 336
Other rules 362
Related rules 372

Chapter 14: C-Style Programming 375
Entire source code available 376
Entire source code not available 378

Chapter 15: Source Files 383
Interface and implementation files 384
Namespaces 391

Chapter 16: The Standard Library 397
Containers 398
Text 404
Input and output 411
Related rules 419

Part II: Supporting Sections 421

Chapter 17: Architectural Ideas 423

Chapter 18: Nonrules and Myths 427

Chapter 19: Profiles 437
Pro.typeType safety 438
Pro.boundsBounds safety 439
Pro.lifetimeLifetime safety 439

Chapter 20: Guidelines Support Library 441
Views 441
Ownership pointers 442
Assertions 443
Utilities 443
Part III: Appendixes 445

Appendix A: Enforcing the C++ Core Guidelines 447
Visual Studio 448
clang-tidy 450

Appendix B: Concepts 453

Appendix C: Contracts 457

Index 459

C Core Guidelines Explained

    Product form

    £29.69

    Includes FREE delivery

    RRP £32.99 – you save £3.30 (10%)

    Order before 4pm today for delivery by Wed 17 Jun 2026.

    A Paperback / softback by Rainer Grimm


      View other formats and editions of C Core Guidelines Explained by Rainer Grimm

      Publisher: Pearson Education (US)
      Publication Date: 22/04/2022
      ISBN13: 9780136875673, 978-0136875673
      ISBN10: 013687567X

      Description

      Book Synopsis
      Rainer Grimm has worked as a software architect, team lead, and instructor since 1999, and offered seminars on C++, Python, and proprietary software since 2002. He writes regularly on C++, Python, and Haskell, speaks at conferences on programming issues, and blogs weekly in English (modernescpp.com) and German (www.grimm-jaud.de/index.php/blog). Now an independent instructor, he offers seminars on modern C++ and Python. He has authored several books on modern C++, concurrency, and related topics.

      Table of Contents
      List of selected C++ Core Guidelines xiii
      List of figures xxiii
      List of tables xxvii
      Foreword xxix
      Preface xxxi
      Acknowledgments xxxvii
      About the author xxxix

      Part I: The Guidelines 1

      Chapter 1: Introduction 3
      Target readership 3
      Aim 4
      Non-aims 4
      Enforcement 4
      Structure 4
      Major sections 5

      Chapter 2: Philosophy 7

      Chapter 3: Interfaces 15
      The curse of non-const global variables 16
      Dependency injection as a cure 18
      Making good interfaces 20
      Related rules 25

      Chapter 4: Functions 27
      Function definitions 28
      Parameter passing: in and out 32
      Parameter passing: ownership semantics 38
      Value return semantics 42
      Other functions 46
      Related rules 52

      Chapter 5: Classes and Class Hierarchies 53
      Summary rules 54
      Concrete types 58
      Constructors, assignments, and destructors 59
      Class hierarchies 98
      Overloading and overloaded operators 117
      Unions 126
      Related rules 129

      Chapter 6: Enumerations 131
      General rules 131
      Related rules 137

      Chapter 7: Resource Management 139
      General rules 140
      Allocation and deallocation 145
      Smart pointers 150
      Related rules 164

      Chapter 8: Expressions and Statements 165
      General 166
      Declarations 168
      Expressions 186
      Statements 199
      Arithmetic 204
      Related rules 210

      Chapter 9: Performance 213
      Wrong optimizations 214
      Wrong assumptions 214
      Enable optimization 218
      Related rules 230

      Chapter 10: Concurrency 231
      General guidelines 232
      Concurrency 245
      Parallelism 266
      Message passing 269
      Lock-free programming 273
      Related rules 277

      Chapter 11: Error Handling 279
      Design 281
      Implementation 283
      If you can't throw 288
      Related rules 292

      Chapter 12: Constants and Immutability 293
      Use const 294
      Use constexpr 298

      Chapter 13: Templates and Generic Programming 301
      Use 302
      Interfaces 305
      Definition 320
      Hierarchies 330
      Variadic templates 332
      Metaprogramming 336
      Other rules 362
      Related rules 372

      Chapter 14: C-Style Programming 375
      Entire source code available 376
      Entire source code not available 378

      Chapter 15: Source Files 383
      Interface and implementation files 384
      Namespaces 391

      Chapter 16: The Standard Library 397
      Containers 398
      Text 404
      Input and output 411
      Related rules 419

      Part II: Supporting Sections 421

      Chapter 17: Architectural Ideas 423

      Chapter 18: Nonrules and Myths 427

      Chapter 19: Profiles 437
      Pro.typeType safety 438
      Pro.boundsBounds safety 439
      Pro.lifetimeLifetime safety 439

      Chapter 20: Guidelines Support Library 441
      Views 441
      Ownership pointers 442
      Assertions 443
      Utilities 443
      Part III: Appendixes 445

      Appendix A: Enforcing the C++ Core Guidelines 447
      Visual Studio 448
      clang-tidy 450

      Appendix B: Concepts 453

      Appendix C: Contracts 457

      Index 459

      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