If it is impossible to imagine writing modern and robust code ...

You need new insights. You need to know how to use new features. You need to get your hands on material to transform outdated into contemporary code.

Perhaps you are thinking:

"I’ve wanted to go into the newer language features for some time now, but I didn’t get around doing it”.

Learning how to use new features of the actual standards is easier than you might think.

You can stop scrolling through an indefinite number of blog posts and videos. The content available is very variable in quality and use anyway. Instead, get everything you need to write modern C++ with the course Programming C++17 to C++20.

You know how to code. You just need the updates. That’s why you should choose Programming C++17 to C++20 when you:

  • prefer to study in your safe environment at home
  • don’t want to spend the money and time on traveling
  • like to study at your own pace
  • don’t have the opportunity to get a training at your company

A course created to fit your needs

You don't have to wait for the next unit to be published. You can discover important elements whenever you like. Whether you binge-watch the material in one night, take 15 minutes to watch a day, or study 2 hours a week, it's totally up to you and your daily schedule.

Programming C++17 to C++20 is a self-study course that explains you the essential updates that were implemented in both standards: C++17 and C++20. It is easy to understand with a pleasure to follow along.

Some highlights of the class:

  • New Language Features of C++17
  • Modern Text Formatting
  • Ranges
I really enjoyed your teaching style and the amount of information you provided.
Thank you again for the engaging and informative training. It was a great refresher for me, as I’ve mostly worked with modern C++ features in the past, but this has slowed down considerably in the past year. I especially appreciated your thoughtful insights and explanations for the reasoning behind certain features or practices.

Here is what you get:

  • 86 lessons that show you the updates in C++17 and C++20
  • 11 total hours of video content divided into short videos so you can easily track your progress
  • A handout as a color PDF, which includes all references and an acronyms list
  • The source code for the exercises and the sample solutions. The code you see on the slides is included in the ZIP file. Of course, you’ll also get a CMake file to build the exercises and solutions.

Your additional Benefit:

You will discover how easy it is to use the two open-source tools “Compiler Explorer” and “C++ insights” in your daily work. Both tools are game-changers that help you determine whether your code compiles.

Andreas Fertig speaking at a conference.

Course Outline

  • Deprecated and removed features
    • throw specification
    • register
    • Removed ++bool
  • New language features of C++17
    • CTAD
    • Range-based for statements with initializer
    • if & switch with initialization
    • Digit separator
    • using for scoped enum
    • Nested namespaces
    • Attributes
      • [[deprecated]]
      • [[nodiscard]]
      • [[no_unique_address]]
      • [[likely]] / [[unlikely]]
    • inline variables
    • Structured bindings
    • Guaranteed copy elision
    • Evaluation order of function calls
  • STL Innovations
    • Why use STL algorithms
    • std::to_array
    • std::span
    • std::shared_ptr and arrays
    • std::make_shared_ptr for arrays
    • std::to_chars and std::from_chars
    • std::byte
    • std::string starts_with & ends_with
    • std::string::reserve()
    • contains for all associative containers
    • std::string_view
    • std::optional
    • std::variant
    • std::any
    • std::source_location
    • Safe integral comparisons
    • std:ssize
    • std::bit_cast
    • Bit operations
    • std::endian
  • Modern text formatting
    • std::format specifiers
    • A custom formatter for a type
  • C++20 language updates
    • Static Initialization Order Fiasco
    • Designated initializers
    • Parenthesis initialization for aggregates
    • Motivation for consistent comparisons
    • The <=>-operator
    • Using a custom sort order
    • Abbreviated function templates
  • Ranges: The next-generation Standard Template Library
    • Ranges Motivation
    • Ranges: Who is who
    • A view
    • Lazy view evaluation
    • Converting a range back to an object
    • Creating a custom range-adaptor
    • A view with write access

You want to see how it looks?

Then check out this preview video. For more details about the platform you can sign up for free.

Level up. Your skills. Your code.

Switch writing C++11 or C++14 code to C++17 to C++20 Code. Do it by using new features of both standards. Only with one course.

365 days Access

$697

  • Instant access to the course and material
  • 86 lessons
  • 11 hours of video content
  • Source code for all the material

Write modern code now

Instructor Mentoring

$997

  • All of the features of the 365 days access
  • 2 thirty-minute video coaching sessions with Andreas Fertig

Email me
There is no money back guarantee, as the course material is worth every US-Cent. Secure checkout. Ongoing email support. All prices are in USD.

Frequently Asked Questions

Here are the answers to your questions.

Do I get a certificate after the course?

Yes! Upon completion of the course, you’ll receive a Certificate of Completion to document your progress and newly acquired modern C++ skills. You can add this certificate, for example, to your LinkedIn profile.

How long will I have access to the material?

You'll have access to all course materials and recordings for a full year, so you can revisit the content anytime.