Bjarne Stroustrup, (Stroustrup 2022)

Notes

Skeleton

Cover

Half Title

Title Page

Contents

Preface

1 The Basics

  • 1.2 Programs
  • 1.3 Functions
  • 1.4 Types, Variables, and Arithmetic
  • 1.5 Scope and Lifetime
  • 1.6 Constants
  • 1.7 Pointers, Arrays, and References
  • 1.8 Tests
  • 1.9 Mapping to Hardware
  • 1.10 Advice

2 User-Defined Types

  • 2.1 Introduction
  • 2.4 Enumerations
  • 2.6 Advice

3 Modularity

  • 3.1 Introduction
  • 3.2 Separate Compilation
  • 3.3 Namespaces
  • 3.5 Advice

4 Error Handling

  • 4.1 Introduction
  • 4.2 Exceptions
  • 4.3 Invariants
  • 4.4 Error-Handling Alternatives
  • 4.5 Assertions
  • 4.6 Advice

5 Classes

  • 5.1 Introduction
  • 5.5 Class Hierarchies
  • 5.6 Advice

6 Essential Operations

  • 6.1 Introduction
  • 6.3 Resource Management
  • 6.4 Operator Overloading
  • 6.5 Conventional Operations
  • 6.6 User-Defined Literals
  • 6.7 Advice

7 Templates

  • 7.1 Introduction
  • 7.2 Parameterized Types
  • 7.3 Parameterized Operations
  • 7.4 Template Mechanisms
  • 7.5 Advice

8 Concepts and Generic Programming

  • 8.1 Introduction
  • 8.2 Concepts
  • 8.3 Generic Programming
  • 8.4 Variadic Templates
  • 8.5 Template Compilation Model
  • 8.6 Advice

9 Library Overview

  • 9.1 Introduction
  • 9.2 Standard-Library Components
  • 9.3 Standard-Library Organization
  • 9.4 Advice

10 Strings and Regular Expressions

  • 10.1 Introduction
  • 10.2 Strings
  • 10.3 String Views
  • 10.4 Regular Expressions
  • 10.5 Advice

11 Input and Output

  • 11.1 Introduction
  • 11.2 Output
  • 11.3 Input
  • 11.4 I/O State
  • 11.5 I/O of User-Defined Types
  • 11.6 Output Formatting
  • 11.7 Streams
  • 11.8 C-style I/O
  • 11.9 File System
  • 11.10 Advice

12 Containers

  • 12.1 Introduction
  • 12.2 vector
  • 12.3 list
  • 12.4 forward_list
  • 12.5 map
  • 12.6 unordered_map
  • 12.7 Allocators
  • 12.8 Container Overview
  • 12.9 Advice

13 Algorithms

  • 13.1 Introduction
  • 13.2 Use of Iterators
  • 13.3 Iterator Types
  • 13.4 Use of Predicates
  • 13.5 Algorithm Overview
  • 13.6 Parallel Algorithms
  • 13.7 Advice

14 Ranges

  • 14.1 Introduction
  • 14.2 Views
  • 14.3 Generators
  • 14.4 Pipelines
  • 14.5 Concepts Overview
  • 14.6 Advice

15 Pointers and Containers

  • 15.1 Introduction
  • 15.3 Containers
  • 15.4 Alternatives
  • 15.5 Advice

16 Utilities

  • 16.1 Introduction
  • 16.2 Time
  • 16.3 Function Adaption
  • 16.4 Type Functions
  • 16.5 source_location
  • 16.6 move() and forward()
  • 16.7 Bit Manipulation
  • 16.8 Exiting a Program
  • 16.9 Advice

17 Numerics

  • 17.1 Introduction
  • 17.2 Mathematical Functions
  • 17.3 Numerical Algorithms
  • 17.4 Complex Numbers
  • 17.5 Random Numbers
  • 17.6 Vector Arithmetic
  • 17.7 Numeric Limits
  • 17.8 Type Aliases
  • 17.9 Mathematical Constants
  • 17.10 Advice

18 Concurrency

  • 18.1 Introduction
  • 18.2 Tasks and threads
  • 18.3 Sharing Data
  • 18.4 Waiting for Events
  • 18.5 Communicating Tasks
  • 18.6 Coroutines
  • 18.7 Advice

19 History and Compatibility

  • 19.1 History
  • 19.2 C++ Feature Evolution
  • 19.3 C/C++ Compatibility

    :NOTER_PAGE: 284

    :END:

  • 19.5 Advice

Module std

  • A.1 Introduction
  • A.2 Use What Your Implementation Offers
  • A.3 Use Headers
  • A.4 Make Your Own module std
  • A.5 Advice

Index

  • A
  • B
  • C
  • D
  • E
  • F
  • G
  • H
  • I
  • J
  • K
  • L
  • M
  • N
  • O
  • P
  • Q
  • R
  • S
  • T
  • U
  • V
  • W
  • X
  • Y
  • Z

Bibliography

Stroustrup, Bjarne. 2022. A Tour of C++. Third. C++ in-Depth Series. Boston: Addison-Wesley.