Hands-on with C++ 20: Ranges, Coroutines, Concepts, and Modules you own this product

intermediate C++11
skills learned
modules • coroutines • concepts • ranges
Joe Justesen
4 weeks · 5-8 hours per week · INTERMEDIATE

pro $24.99 per month

  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose one free eBook per month to keep
  • exclusive 50% discount on all purchases

lite $19.99 per month

  • access to all Manning books, including MEAPs!


5, 10 or 20 seats+ for your team - learn more

Look inside

In this liveProject, you’ll explore the new features of C++20 by upgrading BOSS—the “Bread Optimized Shipping System” of a large national baker. The main logic of BOSS is written in C++, and your team prides itself on keeping it up to date with the latest C++ standards. Your job is to enhance BOSS using different parts of C++20.

You’ll move an existing codebase to the latest C++ features to enhance your team’s productivity, and make it possible to move faster in the future. Unlock new C++20 features such as modules to organize your code, coroutines to optimize the service response times and resource usage, ranges to support dealing with a range of elements in a collection, and concepts to manage template classes. By the time you’re done, you’ll have gotten your hands dirty with some of the most exciting new features of C++20.

This project is designed for learning purposes and is not a complete, production-ready application or solution.

book resources

When you start your liveProject, you get full access to the following books for 90 days.

project author

Joe Justesen
Joe Justesen is a software developer at Perspecta Labs working on mission control software for the next-generation UAVs. He has been developing software since 1992 on the desktop and backend, primarily using C++ with some Python and JavaScript as needed. He is currently creating multi-threaded C++ software to emulate hardware that allows the development of mission optimization systems.


This liveProject is for confident C++ programmers who know C++11 and are interested in expanding their skills in the latest version of C++. To begin this liveProject, you will need to be familiar with the following:

  • Intermediate C++
  • The latest C++ compiler available for your platform
  • An IDE or text editor
  • Selection of the proper STL container
  • Use of STL Algorithms
  • Creating lambda functions for use in STL algorithms
  • Creating class templates
  • Creating function templates

you will learn

C++20 introduced many changes and exciting new features to the language. In this liveProject, you’ll put its four principle new features into practice.

  • Modules to organize large codebases
  • Coroutines to suspend functions that can be resumed later
  • Concepts that allow the creation of and the application of constraints to templated types
  • Ranges, which provide support for dealing with a range of elements in a collection


You choose the schedule and decide how much time to invest as you build your project.
Project roadmap
Each project is divided into several achievable steps.
Get Help
While within the liveProject platform, get help from other participants and our expert mentors.
Compare with others
For each step, compare your deliverable to the solutions by the author and other participants.
book resources
Get full access to select books for 90 days. Permanent access to excerpts from Manning products are also included, as well as references to other resources.

choose your plan


only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • Hands-on with C++ 20: Ranges, Coroutines, Concepts, and Modules project for free