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 tomorrow for delivery by Tue 13 Jan 2026.

A Paperback / softback by Rainer Grimm

1 in stock


    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