# C++ 11/14/17/20 On The Fly ## Table of Contents - [**Preface**](./00-preface.md) - [**Chapter 01 Towards Modern C++**](./01-intro.md) + 1.1 Deprecated Features + 1.2 Compatibility with C + Further Readings - [**Chapter 02 Language Usability Enhancements**](./02-usability.md) + 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 - [**Chapter 03 Language Runtime Enhancements**](./03-runtime.md) + 3.1 Lambda expression + Basics + Value capture + Reference capture + Implicit capture + Expression capture + Generic lambda + 3.2 Function object wrapper + std::function + std::bind/std::placeholder + 3.3 rvalue reference + lvalue, rvalue, prvalue, xvalue + rvalue reference & lvalue reference + Move semantics + Perfect forwarding - [**Chapter 04 Sandard Library: Containers**](./04-containers.md) + 4.1 `std::array` and `std::forward_list` + 4.2 Unordered containers + `std::unordered_set` + `std::unordered_map` + 4.3 Tuples `std::tuple` + basic operation + runtime indexing + merge and iteration - [**Chapter 05 Sandard Library: Pointers**](./05-pointers.md) + 5.1 RAII and reference counting + 5.2 `std::shared_ptr` + 5.3 `std::unique_ptr` - [**Chapter 06 Sandard Library: Regular Expression**](./06-regex.md) + 6.1 Regular Expression Introduction + Normal characters + Special characters + Determinative + 6.2 `std::regex` and related + `std::regex` + `std::regex_match` + `std::match_results` - [**Chapter 07 Sandard Library: Threads and Concurrency**](./07-thread.md) + 7.1 `std::thread` + 7.2 `std::mutex` and `std::unique_lock` + 7.3 `std::future` and `std::packaged_task` + 7.4 `std::condition_variable` + 7.5 `std::atomic` and memory order + 7.6 Transactional memory - [**Chapter 08 Sandard Library: File System**](./08-filesystem.md) + 8.1 Documents and links + 8.2 `std::filesystem` - [**Chapter 09 Minor Features**](./09-others.md) + 9.1 New Types + `long long int` + 9.2 `noexcept` and its operates + 9.3 Literal + Raw string literal + Custom string literal + 9.4 Math Library - [**Chapter 10 Outlook: Introduction of C++20**](./10-cpp20.md) + Concept + Range + Module + Coroutine - [**Appendix 1: Further Study Materials**](./appendix1.md) - [**Appendix 2: Modern C++ Best Practices**](./appendix2.md) Table of Content | Last Chapter | [Next Chapter: Preface](./00-preface.md) ## Licenses Creative Commons License
This work was written by [Ou Changkun](https://changkun.de) 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](../../LICENSE).