This book adapting to C++17 and translating to English
- Preface
- Chapter 01 Towards C++11/14/17
- 1.1 Deprecated Features
- 1.2 Compatibility with C
- Further Readings
- Chapter 02 Language Usability Enhancements
- 2.1 Constants
- nullptr
- constexpr
- 2.2 Variables & Initialization
- Conditional Statement
- Initializer List
- Structured binding
- 2.3 Type Deduction
- auto
- decltype
- Tail return type
- decltype(auto)
- 2.4 Control Flow
- if constexpr
- Range-based for loop
- 2.5 Templates
- External templates
- The ">"
- Type alias templates
- Default template parameters
- Variadic templates
- Fold expression
- 2.6 Object-oriented
- Delegate constructor
- Inheritance constructor
- Explicit virtual function overwrite
- override
- final
- Explicit delete default function
- Strongly typed enumerations
- 2.1 Constants
- Chapter 03 Language Runtime Enhancements
- Lambda expression
- Basics
- Value capture
- Reference capture
- Implicit capture
- Expression capture
- Generic lambda
- Basics
- Function object wrapper
- std::function
- std::bind/std::placeholder
- rvalue reference
- lvalue, rvalue, prvalue, xvalue
- rvalue reference & lvalue reference
- Move semantics
- Perfect forwarding
- Lambda expression
- Chapter 04 Sandard Library: Containers
std::array
std::forward_list
std::unordered_set
std::unordered_map
std::tuple
- basic operation
- runtime indexing
- merge and iteration
- Chapter 05 Sandard Library: Pointers
- RAII and reference counting
std::shared_ptr
std::unique_ptr
std::weak_ptr
- Chapter 06 Sandard Library: Regular Expression
- Regular Expression Introduction
- Normal characters
- Special characters
- Determinative
std::regex
std::regex
std::regex_match
std::match_results
- Regular Expression Introduction
- Chapter 07 Sandard Library: Threads and Concurrency
std::thread
std::mutex
std::unique_lock
std::future
std::packaged_task
std::condition_variable
- Chapter 08 Sandard Library: File System
- Chapter 09 Minor Features
- New Types
long long int
noexcept
- Literal
- Raw string literal
- Custom string literal
- Math Library
- New Types
- Chapter 10 Outlook: Introduction of C++20
- Concept
- Range
- Module
- Coroutine
- Appendix: Further Study Materials
Table of Content | Last Chapter | Next Chapter: Preface
This work is written by Ou Changkun and licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. The code of this repository is open sourced under the MIT license.