Multi-Paradigm Programming with Modern C++

Video description

Write clean, fast, concurrent code with key features of C++ 14,17, and now 20.

About This Video

  • Acquire knowledge of not only the features of modern C++ but also some of the best programming practices.
  • Get a grasp of all the key features of C++2a, including modules, concepts, task blocks, transactional memory, ranges, coroutines, and more, in a single course.
  • A practical guide to advance your skills along with new features of the latest C++ versions (14, 17, and 20) for creating better software with ease.

In Detail

C++ is a multi-paradigm language that lets you solve a problem in different ways, and this course will teach you the best practices.

Furthermore, C++ has been re-invented again. C++2a is the largest extension to the language since C++11, and it almost feels like a new language. Developers who master the new features will be able to write cleaner, faster and concurrent code. In this course, you will learn about the best practices of C++ programming, including project structure, designing interfaces and classes, C++ Core Guidelines, and the most recent language standard. The new features are numerous and cover almost every area of the language: modules let us organize our programs better; concepts help us create cleaner APIs; ranges forever change how we look at containers; concurrency features, such as coroutines, bring parallel and concurrent programming to a whole new level.

You will get plenty of practical experience with short, real-world code examples. By the end of this course, you will be ready to create better software using C++.


If you are a C++ developer and want to upskill your C++ development skills, this is the course you. Working knowledge of C++, including selected features of C++11 (e. g. lambdas), is required. Knowledge of C++17 is not necessary, but it will make understanding of some aspects easier.

Publisher resources

Download Example Code

Table of contents

  1. Chapter 1 : Introduction to C++
    1. The Course Overview
    2. On Programming Paradigms
    3. A Brief History with C++
    4. On Development Tools
  2. Chapter 2 : Structuring Projects in C++
    1. Structure of C++ Projects
    2. Organizing Source Files
    3. Improving Compilation Speed
    4. Pimpl Idiom
    5. Modules in C++ 2a
    6. Structuring Modules
  3. Chapter 3 : Creating Better Interfaces
    1. What Makes a Good Interface
    2. Providing a Good Abstraction
    3. Passing Things Around
    4. Enforcing the Contract
    5. Interface with Style
    6. Application Binary Interface
  4. Chapter 4 : Going Object-Oriented
    1. Class and Structs
    2. Constructors and Destructors
    3. Copy and Move
    4. Designing Class Hierarchies
    5. Dual Hierarchy Example
    6. Managing Memory
    7. Shared Pointer
  5. Chapter 5 : From Functions to
    1. Chapter 6 : Writing Generic Code with Templates
      1. When to Use Templates
      2. Instantiating the Template
      3. Specializing the Template
      4. Entering Concepts
      5. Diving into Concepts
    2. Chapter 7 : Working with Collections
      1. In Search of a Perfect Container
      2. Searching and Sorting
      3. Manipulating Data
      4. Enter Ranges
      5. Dive into Ranges
      6. More Range Examples
    3. Chapter 8 : Concurrent Data Access
      1. Data Access Modes
      2. Synchronization with Atomics
      3. Synchronization with Mutexes
      4. Synchronization with Condition Variables
      5. Parallel STL
    4. Chapter 9 : Task-Level Parallelism
      1. Thread Pools
      2. Promise and Future
      3. Running Asynchronous Tasks
      4. Task Continuation
      5. Grouping Tasks with Fork/Join
      6. Distributing the Work
    5. Chapter 10 : Introduction to Coroutines
      1. What Is a Coroutine?
      2. Coroutine Mechanics
      3. Coroutine Machinery
      4. Writing Our First Coroutine
      5. Resuming the Coroutine
    6. Chapter 11 : Dive Deeper into Coroutines
      1. Coroutines on a Thread Pool
      2. Scheduling a Coroutine
      3. Returning Values
      4. Adding Syntactic Sugar
      5. Implementing Continuations
      6. Putting It All Together
    7. Chapter 12 : C++ Core Guidelines
      1. About the Guidelines
      2. Enforcing the Guidelines
      3. General Guidelines

Product information

  • Title: Multi-Paradigm Programming with Modern C++
  • Author(s): Georgy Pashkov
  • Release date: June 2020
  • Publisher(s): Packt Publishing
  • ISBN: 9781839212864