Description

Book Synopsis

Bjarne Stroustrup is the designer and original implementer of C++ and the author of Programming: Principles and Practice Using C++, Second Edition, and The C++ Programming Language, Fourth Edition, among others. Currently a professor at Columbia University, he has previously worked at AT&T Bell Labs, Texas A&M University, and Morgan Stanley. He is the recipient of numerous honors, including The National Academy of Engineering's Charles Stark Draper Prize for Engineering for conceptualizing and developing the C++ programming language. Dr. Stroustrup is a member of the National Academy of Engineering, a fellow of IEEE, ACM, CHM, and Churchill College Cambridge.



Table of Contents

Preface xi

Chapter 1: The Basics 1
1.1 Introduction 1
1.2 Programs 2
1.3 Functions 4
1.4 Types, Variables, and Arithmetic 5
1.5 Scope and Lifetime 9
1.6 Constants 10
1.7 Pointers, Arrays, and References 11
1.8 Tests 14
1.9 Mapping to Hardware 16
1.10 Advice 19

Chapter 2: User-Defined Types 21
2.1 Introduction 21
2.2 Structures 22
2.3 Classes 23
2.4 Enumerations 25
2.5 Unions 27
2.6 Advice 28

Chapter 3: Modularity 29
3.1 Introduction 29
3.2 Separate Compilation 30
3.3 Namespaces 35
3.4 Function Arguments and Return Values 37
3.5 Advice 42

Chapter 4: Error Handling 43
4.1 Introduction 43
4.2 Exceptions 44
4.3 Invariants 45
4.4 Error-Handling Alternatives 47
4.5 Assertions 48
4.6 Advice 51

Chapter 5: Classes 53
5.1 Introduction 53
5.2 Concrete Types 54
5.3 Abstract Types 60
5.4 Virtual Functions 62
5.5 Class Hierarchies 63
5.6 Advice 69

Chapter 6: Essential Operations 71
6.1 Introduction 71
6.2 Copy and Move 74
6.3 Resource Management 78
6.4 Operator Overloading 80
6.5 Conventional Operations 81
6.6 User-Defined Literals 84
6.7 Advice 85

Chapter 7: Templates 87
7.1 Introduction 87
7.2 Parameterized Types 88
7.3 Parameterized Operations 93
7.4 Template Mechanisms 99
7.5 Advice 102

Chapter 8: Concepts and Generic Programming 103
8.1 Introduction 103
8.2 Concepts 104
8.3 Generic Programming 112
8.4 Variadic Templates 114
8.5 Template Compilation Model 117
8.6 Advice 117

Chapter 9: Library Overview 119
9.1 Introduction 119
9.2 Standard-Library Components 120
9.3 Standard-Library Organization 121
9.4 Advice 124

Chapter 10: Strings and Regular Expressions 125
10.1 Introduction 125
10.2 Strings 125
10.3 String Views 128
10.4 Regular Expressions 130
10.5 Advice 136

Chapter 11: Input and Output 137
11.1 Introduction 137
11.2 Output 138
11.3 Input 139
11.4 I/O State 141
11.5 I/O of User-Defined Types 141
11.6 Output Formatting 143
11.7 Streams 146
11.8 C-style I/O 149
11.9 File System 150
11.10 Advice 154

Chapter 12: Containers 157
12.1 Introduction 157
12.2 vector 158
12.3 list 162
12.4 forward_list 164
12.5 map 164
12.6 unordered_map 165
12.7 Allocators 167
12.8 Container Overview 168
12.9 Advice 170

Chapter 13: Algorithms 173
13.1 Introduction 173
13.2 Use of Iterators 175
13.3 Iterator Types 178
13.4 Use of Predicates 181
13.5 Algorithm Overview 181
13.6 Parallel Algorithms 183
13.7 Advice 183

Chapter 14: Ranges 185
14.1 Introduction 185
14.2 Views 186
14.3 Generators 188
14.4 Pipelines 188
14.5 Concepts Overview 190
14.6 Advice 194

Chapter 15: Pointers and Containers 195
15.1 Introduction 195
15.2 Pointers 196
15.3 Containers 201
15.4 Alternatives 208
15.5 Advice 212

Chapter 16: Utilities 213
16.1 Introduction 213
16.2 Time 214
16.3 Function Adaption 216
16.4 Type Functions 217
16.5 source_location 222
16.6 move() and forward() 223
16.7 Bit Manipulation 224
16.8 Exiting a Program 225
16.9 Advice 225

Chapter 17: Numerics 227
17.1 Introduction 227
17.2 Mathematical Functions 228
17.3 Numerical Algorithms 229
17.4 Complex Numbers 230
17.5 Random Numbers 231
17.6 Vector Arithmetic 233
17.7 Numeric Limits 234
17.8 Type Aliases 234
17.9 Mathematical Constants 234
17.10 Advice 235

Chapter 18: Concurrency 237
18.1 Introduction 237
18.2 Tasks and threads 238
18.3 Sharing Data 241
18.4 Waiting for Events 243
18.5 Communicating Tasks 245
18.6 Coroutines 250
18.8 Advice 253

Chapter 19: History and Compatibility 255
19.1 History 255
19.2 C++ Feature Evolution 263
19.3 C/C++ Compatibility 268
19.4 Bibliography 271
19.5 Advice 274

Appendix: Module std 277
A.1 Introduction 277
A.2 Use What Your Implementation Offers 278
A.3 Use Headers 278
A.4 Make Your Own module std 278
A.5 Advice 279

Index 281

Tour of C A

    Product form

    £26.99

    Includes FREE delivery

    RRP £29.99 – you save £3.00 (10%)

    Order before 4pm tomorrow for delivery by Sat 4 Jul 2026.

    A Paperback / softback by Bjarne Stroustrup

    5 in stock

      Trusted by thousands of customers. See 2,385+ Customer Reviews

      View other formats and editions of Tour of C A by Bjarne Stroustrup

      Publisher: Pearson Education (US)
      Publication Date: 12/10/2022
      ISBN13: 9780136816485, 978-0136816485
      ISBN10: 0136816487

      Description

      Book Synopsis

      Bjarne Stroustrup is the designer and original implementer of C++ and the author of Programming: Principles and Practice Using C++, Second Edition, and The C++ Programming Language, Fourth Edition, among others. Currently a professor at Columbia University, he has previously worked at AT&T Bell Labs, Texas A&M University, and Morgan Stanley. He is the recipient of numerous honors, including The National Academy of Engineering's Charles Stark Draper Prize for Engineering for conceptualizing and developing the C++ programming language. Dr. Stroustrup is a member of the National Academy of Engineering, a fellow of IEEE, ACM, CHM, and Churchill College Cambridge.



      Table of Contents

      Preface xi

      Chapter 1: The Basics 1
      1.1 Introduction 1
      1.2 Programs 2
      1.3 Functions 4
      1.4 Types, Variables, and Arithmetic 5
      1.5 Scope and Lifetime 9
      1.6 Constants 10
      1.7 Pointers, Arrays, and References 11
      1.8 Tests 14
      1.9 Mapping to Hardware 16
      1.10 Advice 19

      Chapter 2: User-Defined Types 21
      2.1 Introduction 21
      2.2 Structures 22
      2.3 Classes 23
      2.4 Enumerations 25
      2.5 Unions 27
      2.6 Advice 28

      Chapter 3: Modularity 29
      3.1 Introduction 29
      3.2 Separate Compilation 30
      3.3 Namespaces 35
      3.4 Function Arguments and Return Values 37
      3.5 Advice 42

      Chapter 4: Error Handling 43
      4.1 Introduction 43
      4.2 Exceptions 44
      4.3 Invariants 45
      4.4 Error-Handling Alternatives 47
      4.5 Assertions 48
      4.6 Advice 51

      Chapter 5: Classes 53
      5.1 Introduction 53
      5.2 Concrete Types 54
      5.3 Abstract Types 60
      5.4 Virtual Functions 62
      5.5 Class Hierarchies 63
      5.6 Advice 69

      Chapter 6: Essential Operations 71
      6.1 Introduction 71
      6.2 Copy and Move 74
      6.3 Resource Management 78
      6.4 Operator Overloading 80
      6.5 Conventional Operations 81
      6.6 User-Defined Literals 84
      6.7 Advice 85

      Chapter 7: Templates 87
      7.1 Introduction 87
      7.2 Parameterized Types 88
      7.3 Parameterized Operations 93
      7.4 Template Mechanisms 99
      7.5 Advice 102

      Chapter 8: Concepts and Generic Programming 103
      8.1 Introduction 103
      8.2 Concepts 104
      8.3 Generic Programming 112
      8.4 Variadic Templates 114
      8.5 Template Compilation Model 117
      8.6 Advice 117

      Chapter 9: Library Overview 119
      9.1 Introduction 119
      9.2 Standard-Library Components 120
      9.3 Standard-Library Organization 121
      9.4 Advice 124

      Chapter 10: Strings and Regular Expressions 125
      10.1 Introduction 125
      10.2 Strings 125
      10.3 String Views 128
      10.4 Regular Expressions 130
      10.5 Advice 136

      Chapter 11: Input and Output 137
      11.1 Introduction 137
      11.2 Output 138
      11.3 Input 139
      11.4 I/O State 141
      11.5 I/O of User-Defined Types 141
      11.6 Output Formatting 143
      11.7 Streams 146
      11.8 C-style I/O 149
      11.9 File System 150
      11.10 Advice 154

      Chapter 12: Containers 157
      12.1 Introduction 157
      12.2 vector 158
      12.3 list 162
      12.4 forward_list 164
      12.5 map 164
      12.6 unordered_map 165
      12.7 Allocators 167
      12.8 Container Overview 168
      12.9 Advice 170

      Chapter 13: Algorithms 173
      13.1 Introduction 173
      13.2 Use of Iterators 175
      13.3 Iterator Types 178
      13.4 Use of Predicates 181
      13.5 Algorithm Overview 181
      13.6 Parallel Algorithms 183
      13.7 Advice 183

      Chapter 14: Ranges 185
      14.1 Introduction 185
      14.2 Views 186
      14.3 Generators 188
      14.4 Pipelines 188
      14.5 Concepts Overview 190
      14.6 Advice 194

      Chapter 15: Pointers and Containers 195
      15.1 Introduction 195
      15.2 Pointers 196
      15.3 Containers 201
      15.4 Alternatives 208
      15.5 Advice 212

      Chapter 16: Utilities 213
      16.1 Introduction 213
      16.2 Time 214
      16.3 Function Adaption 216
      16.4 Type Functions 217
      16.5 source_location 222
      16.6 move() and forward() 223
      16.7 Bit Manipulation 224
      16.8 Exiting a Program 225
      16.9 Advice 225

      Chapter 17: Numerics 227
      17.1 Introduction 227
      17.2 Mathematical Functions 228
      17.3 Numerical Algorithms 229
      17.4 Complex Numbers 230
      17.5 Random Numbers 231
      17.6 Vector Arithmetic 233
      17.7 Numeric Limits 234
      17.8 Type Aliases 234
      17.9 Mathematical Constants 234
      17.10 Advice 235

      Chapter 18: Concurrency 237
      18.1 Introduction 237
      18.2 Tasks and threads 238
      18.3 Sharing Data 241
      18.4 Waiting for Events 243
      18.5 Communicating Tasks 245
      18.6 Coroutines 250
      18.8 Advice 253

      Chapter 19: History and Compatibility 255
      19.1 History 255
      19.2 C++ Feature Evolution 263
      19.3 C/C++ Compatibility 268
      19.4 Bibliography 271
      19.5 Advice 274

      Appendix: Module std 277
      A.1 Introduction 277
      A.2 Use What Your Implementation Offers 278
      A.3 Use Headers 278
      A.4 Make Your Own module std 278
      A.5 Advice 279

      Index 281

      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