
A Tour of C++ Third Edition
Description
Book Introduction
This is the latest C++ guide from Bjarne Stroustrup, the creator of C++. Each chapter covers the basic components of C++, such as types, classes, operations, templates, containers, and exceptions, while explaining the new modules, concepts, and coroutines added to C++20 in conjunction with modern development methods such as generic programming and cooperative multitasking. It concisely and accurately points out what you need to know in the changing C++ versions. |
- You can preview some of the book's contents.
Preview
index
Chapter 1.
Building a foundation
1.1 Introduction
1.2 Program
1.3 Function
1.4 Types, variables, and arithmetic operations
1.5 Range and Lifespan
1.6 constant
1.7 Pointers, Arrays, and References
1.8 Test
1.9 Mapping with Hardware
1.10 Advice
Chapter 2.
Custom type
2.1 Introduction
2.2 Structure
2.3 Class
2.4 Enumeration
2.5 Commons
2.6 Advice
Chapter 3 Modularity
3.1 Introduction
3.2 Separate Compilation
3.3 Namespaces
3.4 Function arguments and return values
3.5 Advice
Chapter 4.
Error handling
4.1 Introduction
4.2 Exceptions
4.3 Invariant
4.4 Error Handling Alternatives
4.5 Assertion
4.6 Advice
Chapter 5.
class
5.1 Introduction
5.2 Concrete Type
5.3 Abstract Types
5.4 Virtual functions
5.5 Class Hierarchy
5.6 Advice
Chapter 6.
Required operations
6.1 Introduction
6.2 Copying and Moving
6.3 Resource Management
6.4 Operator Overloading
6.5 Traditional Operations
6.6 User-Defined Literals
6.7 Advice
Chapter 7.
Template
7.1 Introduction
7.2 Parameterization Types
7.3 Parameterized Operations
7.4 Template Mechanism
7.5 Advice
Chapter 8.
Concepts and Generic Programming
8.1 Introduction
8.2 Concept
8.3 Generic Programming
8.4 Variable argument templates
8.5 Template Compilation Model
8.6 Advice
Chapter 9.
Browse the library
9.1 Introduction
9.2 Standard Library Components
9.3 Configuring the Standard Library
9.4 Advice
Chapter 10.
Strings and regular expressions
10.1 Introduction
10.2 Strings
10.3 String View
10.4 Regular Expressions
10.5 Advice
Chapter 11.
Input and output
11.1 Introduction
11.2 Output
11.3 Input
11.4 I/O Status
11.5 I/O of user-defined types
11.6 Output Formatting
11.7 Stream
11.8 C-style I/O
11.9 File System
11.10 Advice
Chapter 12.
container
12.1 Introduction
12.2 vector
12.3 list
12.4 forward_list
12.5 map
12.6 unordered_map
12.7 Allocator
12.8 Container Overview
12.9 Advice
Chapter 13.
algorithm
13.1 Introduction
13.2 Using Iterators
13.3 Iterator Types
13.4 Using Predicate
13.5 Algorithm Overview
13.6 Parallel Algorithms
13.7 Advice
Chapter 14.
range
14.1 Introduction
14.2 views
14.3 Constructor
14.4 Pipeline
14.5 Concept Overview
14.6 Advice
Chapter 15.
Pointers and Containers
15.1 Introduction
15.2 Pointers
15.3 Container
15.4 Alternative
15.5 Advice
Chapter 16.
Utility
16.1 Introduction
16.2 hours
16.3 Function Adjustment
16.4 Type functions
16.5 source_location
16.6 move() and forward()
16.7 Bit Manipulation
16.8 Program End
16.9 Advice
Chapter 17.
number
17.1 Introduction
17.2 Mathematical functions
17.3 Number Algorithm
17.4 Complex numbers
17.5 Random Numbers
17.6 Vector Arithmetic
17.7 Water restrictions
17.8 Type Alias
17.9 Mathematical Constants
17.10 Advice
Chapter 18.
Concurrent execution
18.1 Introduction
18.2 Tasks and Threads
18.3 Data Sharing
18.4 Waiting for event
18.5 Task Communication
18.6 Coroutines
18.7 Advice
Chapter 19.
Historical background and compatibility
19.1 History
19.2 C++ Feature Evolution
19.3 C/C++ Compatibility
19.4 References
19.5 Advice
supplement.
std module
Building a foundation
1.1 Introduction
1.2 Program
1.3 Function
1.4 Types, variables, and arithmetic operations
1.5 Range and Lifespan
1.6 constant
1.7 Pointers, Arrays, and References
1.8 Test
1.9 Mapping with Hardware
1.10 Advice
Chapter 2.
Custom type
2.1 Introduction
2.2 Structure
2.3 Class
2.4 Enumeration
2.5 Commons
2.6 Advice
Chapter 3 Modularity
3.1 Introduction
3.2 Separate Compilation
3.3 Namespaces
3.4 Function arguments and return values
3.5 Advice
Chapter 4.
Error handling
4.1 Introduction
4.2 Exceptions
4.3 Invariant
4.4 Error Handling Alternatives
4.5 Assertion
4.6 Advice
Chapter 5.
class
5.1 Introduction
5.2 Concrete Type
5.3 Abstract Types
5.4 Virtual functions
5.5 Class Hierarchy
5.6 Advice
Chapter 6.
Required operations
6.1 Introduction
6.2 Copying and Moving
6.3 Resource Management
6.4 Operator Overloading
6.5 Traditional Operations
6.6 User-Defined Literals
6.7 Advice
Chapter 7.
Template
7.1 Introduction
7.2 Parameterization Types
7.3 Parameterized Operations
7.4 Template Mechanism
7.5 Advice
Chapter 8.
Concepts and Generic Programming
8.1 Introduction
8.2 Concept
8.3 Generic Programming
8.4 Variable argument templates
8.5 Template Compilation Model
8.6 Advice
Chapter 9.
Browse the library
9.1 Introduction
9.2 Standard Library Components
9.3 Configuring the Standard Library
9.4 Advice
Chapter 10.
Strings and regular expressions
10.1 Introduction
10.2 Strings
10.3 String View
10.4 Regular Expressions
10.5 Advice
Chapter 11.
Input and output
11.1 Introduction
11.2 Output
11.3 Input
11.4 I/O Status
11.5 I/O of user-defined types
11.6 Output Formatting
11.7 Stream
11.8 C-style I/O
11.9 File System
11.10 Advice
Chapter 12.
container
12.1 Introduction
12.2 vector
12.3 list
12.4 forward_list
12.5 map
12.6 unordered_map
12.7 Allocator
12.8 Container Overview
12.9 Advice
Chapter 13.
algorithm
13.1 Introduction
13.2 Using Iterators
13.3 Iterator Types
13.4 Using Predicate
13.5 Algorithm Overview
13.6 Parallel Algorithms
13.7 Advice
Chapter 14.
range
14.1 Introduction
14.2 views
14.3 Constructor
14.4 Pipeline
14.5 Concept Overview
14.6 Advice
Chapter 15.
Pointers and Containers
15.1 Introduction
15.2 Pointers
15.3 Container
15.4 Alternative
15.5 Advice
Chapter 16.
Utility
16.1 Introduction
16.2 hours
16.3 Function Adjustment
16.4 Type functions
16.5 source_location
16.6 move() and forward()
16.7 Bit Manipulation
16.8 Program End
16.9 Advice
Chapter 17.
number
17.1 Introduction
17.2 Mathematical functions
17.3 Number Algorithm
17.4 Complex numbers
17.5 Random Numbers
17.6 Vector Arithmetic
17.7 Water restrictions
17.8 Type Alias
17.9 Mathematical Constants
17.10 Advice
Chapter 18.
Concurrent execution
18.1 Introduction
18.2 Tasks and Threads
18.3 Data Sharing
18.4 Waiting for event
18.5 Task Communication
18.6 Coroutines
18.7 Advice
Chapter 19.
Historical background and compatibility
19.1 History
19.2 C++ Feature Evolution
19.3 C/C++ Compatibility
19.4 References
19.5 Advice
supplement.
std module
Publisher's Review
◈ Author's Note ◈
C++ has completely changed.
Compared to C++98 or C++11, ideas can be implemented more clearly, simply, and intuitively.
Compilers also produce faster and more accurate resulting programs.
This book provides a comprehensive overview of C++ implementations by major C++ providers, using the C++20 definition, the current ISO C++ standard, as a baseline.
We also introduce frequently used library components that are not expected to be adopted as a standard until C++23.
Like other modern languages, C++ is very large and requires a wide variety of libraries to use effectively.
This slim book is ideal for programmers already familiar with C++ to learn modern C++ components.
It introduces most of the major language features and also covers major standard library components.
You can read it in a day or two, but it's not enough to write great C++ code.
Rather than providing a complete explanation, we aim to provide a starting point for programmers by providing only the outline and essential examples.
This book assumes sufficient programming experience.
If not, I recommend reading a book like 『Programming: Principles and Practice Using C++, Second edition Korean version』(Acorn, 2015).
Even if you have programming experience, the languages you've used or the applications you've developed may be quite different from the C++ approach introduced in this book.
Let's say you're touring a city like Copenhagen or New York.
If you're on a group tour, you can tour the city's main attractions in just a few hours, hear behind-the-scenes stories, and then get recommendations for the next destination.
You can't get to know the city at all by wandering around like this.
What I see and hear does not become solely mine.
Some stories are so bizarre that they are almost unbelievable.
There is no way to know the formal and informal rules that govern life in that city.
You have to live for a few years to know it properly.
But with a little luck, you might get a brief overview.
Then you will know what is special about the city and what parts are interesting.
Only after this tour is over does the real exploration begin.
The tour provided in this book introduces C++ language features that support programming styles such as object-oriented and generic programming.
We do not provide detailed reference manuals for every language feature.
As with any good textbook, we try to explain features before using them, but sometimes that's not possible, and not all readers read the book sequentially.
We assume the reader has some level of technical proficiency.
So, please use cross-references or indexes whenever necessary.
In the same vein, this tour explains the standard library from an example perspective rather than a thorough explanation.
If necessary, explore additional resources. The functionality provided by the ISO standard represents only a small portion of the C++ ecosystem (e.g., libraries, build systems, analysis tools, development environments, etc.).
There is a ton of material online (although the quality varies).
You can easily find useful tutorials and introductory videos at conferences like CppCon and Meeting C++. For a detailed technical overview of the language and libraries provided by the ISO C++ standard, check out Cppreference.
When a standard library function or class appears, it is easy to find the definition, and many related functions appear when reading the documentation.
This tour looks at C++ as an integrated whole rather than a layered cake.
So it barely covers language features introduced in C or C++98 or later ISO standards.
This information is found in Chapter 19 (Historical Background and Compatibility).
The goal is to keep it brief and focused on the basics, but I haven't been able to completely avoid the temptation to introduce new features like modules (Section 3.2.2), concepts (Section 8.2), and coroutines (Section 18.6) in a flash.
An attempt to follow modern development practices will also satisfy the curiosity of many readers familiar with older versions of C++.
◈ Translator's Note ◈
Programming languages are constantly evolving.
Especially for a huge language like C++, it is never easy to keep up with its speed and scale.
In their busy daily lives, programmers are always struggling to learn new versions and features.
As if to listen to these concerns, Bjarne Stroustrup, the founder of C++, concisely and accurately points out what you need to know in the changing versions of C++ in this book.
This book alone won't give you complete mastery of C++, but it will at least give you a sense of where to start.
As Bjarne Stroustrup said in the quote above, there is no need to go through the trouble of doing something that can be done simply.
The author does not stop at simply listing features.
It links various concepts and explains with easy-to-understand examples how which elements are used in which situations.
It introduces the appropriate standard library at the right place and does not miss any useful reference material.
Readers will be well aware that no matter how good a feature is, how it is combined and utilized determines the quality of the program.
The more great use cases you know, the higher the quality of your code will be, so don't overlook the examples the author has painstakingly created.
C++ has undergone major changes with the advent of C++20.
Above all, many elements have been added to more intuitively reflect the user's intentions.
Representative examples include modules, concepts, and coroutines.
The author builds a solid foundation by covering the basic elements of C++, such as types, classes, operations, templates, containers, exceptions, and input/output, as topics for each chapter, while also explaining newly added elements to C++ in conjunction with modern development methods, such as generic programming and cooperative multitasking.
Although it is based on C++20, it also hints at what will be included in C++23.
Based on my experience working on the C++ committee, I occasionally mention ongoing projects to help you prepare for the future.
If you're pressed for time, read the table of contents first.
An easy-to-understand table of contents will guide you to your desired direction and destination.
There is no reason why the author would have titled it 『Tour of C++』.
I hope this will be an opportunity for you to enjoy your journey through the world of C++ and learn C++ more easily.
C++ has completely changed.
Compared to C++98 or C++11, ideas can be implemented more clearly, simply, and intuitively.
Compilers also produce faster and more accurate resulting programs.
This book provides a comprehensive overview of C++ implementations by major C++ providers, using the C++20 definition, the current ISO C++ standard, as a baseline.
We also introduce frequently used library components that are not expected to be adopted as a standard until C++23.
Like other modern languages, C++ is very large and requires a wide variety of libraries to use effectively.
This slim book is ideal for programmers already familiar with C++ to learn modern C++ components.
It introduces most of the major language features and also covers major standard library components.
You can read it in a day or two, but it's not enough to write great C++ code.
Rather than providing a complete explanation, we aim to provide a starting point for programmers by providing only the outline and essential examples.
This book assumes sufficient programming experience.
If not, I recommend reading a book like 『Programming: Principles and Practice Using C++, Second edition Korean version』(Acorn, 2015).
Even if you have programming experience, the languages you've used or the applications you've developed may be quite different from the C++ approach introduced in this book.
Let's say you're touring a city like Copenhagen or New York.
If you're on a group tour, you can tour the city's main attractions in just a few hours, hear behind-the-scenes stories, and then get recommendations for the next destination.
You can't get to know the city at all by wandering around like this.
What I see and hear does not become solely mine.
Some stories are so bizarre that they are almost unbelievable.
There is no way to know the formal and informal rules that govern life in that city.
You have to live for a few years to know it properly.
But with a little luck, you might get a brief overview.
Then you will know what is special about the city and what parts are interesting.
Only after this tour is over does the real exploration begin.
The tour provided in this book introduces C++ language features that support programming styles such as object-oriented and generic programming.
We do not provide detailed reference manuals for every language feature.
As with any good textbook, we try to explain features before using them, but sometimes that's not possible, and not all readers read the book sequentially.
We assume the reader has some level of technical proficiency.
So, please use cross-references or indexes whenever necessary.
In the same vein, this tour explains the standard library from an example perspective rather than a thorough explanation.
If necessary, explore additional resources. The functionality provided by the ISO standard represents only a small portion of the C++ ecosystem (e.g., libraries, build systems, analysis tools, development environments, etc.).
There is a ton of material online (although the quality varies).
You can easily find useful tutorials and introductory videos at conferences like CppCon and Meeting C++. For a detailed technical overview of the language and libraries provided by the ISO C++ standard, check out Cppreference.
When a standard library function or class appears, it is easy to find the definition, and many related functions appear when reading the documentation.
This tour looks at C++ as an integrated whole rather than a layered cake.
So it barely covers language features introduced in C or C++98 or later ISO standards.
This information is found in Chapter 19 (Historical Background and Compatibility).
The goal is to keep it brief and focused on the basics, but I haven't been able to completely avoid the temptation to introduce new features like modules (Section 3.2.2), concepts (Section 8.2), and coroutines (Section 18.6) in a flash.
An attempt to follow modern development practices will also satisfy the curiosity of many readers familiar with older versions of C++.
◈ Translator's Note ◈
Programming languages are constantly evolving.
Especially for a huge language like C++, it is never easy to keep up with its speed and scale.
In their busy daily lives, programmers are always struggling to learn new versions and features.
As if to listen to these concerns, Bjarne Stroustrup, the founder of C++, concisely and accurately points out what you need to know in the changing versions of C++ in this book.
This book alone won't give you complete mastery of C++, but it will at least give you a sense of where to start.
As Bjarne Stroustrup said in the quote above, there is no need to go through the trouble of doing something that can be done simply.
The author does not stop at simply listing features.
It links various concepts and explains with easy-to-understand examples how which elements are used in which situations.
It introduces the appropriate standard library at the right place and does not miss any useful reference material.
Readers will be well aware that no matter how good a feature is, how it is combined and utilized determines the quality of the program.
The more great use cases you know, the higher the quality of your code will be, so don't overlook the examples the author has painstakingly created.
C++ has undergone major changes with the advent of C++20.
Above all, many elements have been added to more intuitively reflect the user's intentions.
Representative examples include modules, concepts, and coroutines.
The author builds a solid foundation by covering the basic elements of C++, such as types, classes, operations, templates, containers, exceptions, and input/output, as topics for each chapter, while also explaining newly added elements to C++ in conjunction with modern development methods, such as generic programming and cooperative multitasking.
Although it is based on C++20, it also hints at what will be included in C++23.
Based on my experience working on the C++ committee, I occasionally mention ongoing projects to help you prepare for the future.
If you're pressed for time, read the table of contents first.
An easy-to-understand table of contents will guide you to your desired direction and destination.
There is no reason why the author would have titled it 『Tour of C++』.
I hope this will be an opportunity for you to enjoy your journey through the world of C++ and learn C++ more easily.
GOODS SPECIFICS
- Date of issue: June 28, 2024
- Page count, weight, size: 436 pages | 188*235*20mm
- ISBN13: 9791161758565
- ISBN10: 1161758569
You may also like
카테고리
korean
korean