C++ 11/14/17/20 On The Fly

    • Chapter 01 Towards Modern C++
      • 1.1 Deprecated Features
      • 1.2 Compatibility with C
      • Further Readings
      • 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
        • Non-type template parameter deduction
      • 2.6 Object-oriented
        • Delegate constructor
        • Inheritance constructor
        • override
        • final
        • Explicit delete default function
        • Strongly typed enumerations
    • Chapter 03 Language Runtime Enhancements
      • 3.1 Lambda expression
        • Basics
        • Generics
      • 3.2 Function object wrapper
        • std::function
        • std::bind/std::placeholder
      • 3.3 rvalue reference
        • lvalue, rvalue, prvalue, xvalue
        • rvalue reference and lvalue reference
        • Move semantics
        • Perfect forwarding
      • 4.1 Linear containers
        • 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 Smart Pointers and Memory Management
      • 5.1 RAII and reference counting
      • 5.2 std::shared_ptr
      • 5.3 std::unique_ptr
      • 5.4 std::weak_ptr
      • 6.1 Introduction
        • Special characters
        • Quantifiers
      • 6.2 std::regex and its related
        • std::regex_match
        • std::match_results
    • Chapter 07 Parallelism and Concurrency
      • 7.1 Basic of Parallelism
      • 7.2 Mutex and Critical Section
      • 7.3 Futures
      • 7.4 Condition Variable
      • 7.5 Atomic Operation and Memory Model
        • Atomic Operation
        • Consistency Model
        • Memory Orders
      • 8.1 Documents and links
      • 8.2 std::filesystem
    • Chapter 09 Minor Features
      • 9.1 New Types
        • long long int
      • 9.2 and Its Operations
      • 9.3 Literal
        • Raw String Literal
        • Custom String Literal
      • 9.4 Memory Alignment
      • 10.1 Concept
      • 10.2 Range
      • 10.3 Module
      • 10.4 Coroutine
      • 10.5 Transaction Memory
    • Appendix 1: Further Study Materials

    Licenses

    This work was written by and licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. The code of this repository is open sourced under the .