Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Coursera

C++ 20 Mastery - Pure and Unfiltered

Packt via Coursera

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
This course features Coursera Coach! A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. In this course, you will gain a deep understanding of the new features and enhancements introduced in C++20. As you master the language, you will explore key changes that will help you write more efficient and modern C++ code, including the improvements in core language features, lambda expressions, and templates. By the end of the course, you will be proficient in the nuances of C++20 and ready to apply them in real-world scenarios. The journey starts with understanding the foundational changes, such as designated initializers and range-based for loops, before moving on to more advanced topics like coroutines, concurrency, and the new C++20 standard library additions. The course includes a step-by-step exploration of the text formatting library, concepts, modules, three-way comparison operators, ranges, and more. Each section is designed to enhance your skills progressively, with real-life examples and practical exercises to reinforce the concepts. This course is designed for developers who are already familiar with C++ but want to take their skills to the next level with C++20. Whether you're developing large-scale systems or just looking to stay up-to-date with the latest language features, this course will empower you to write cleaner, more efficient, and modern C++ code.

Syllabus

  • Introduction to C++20
    • In this module, we will provide an overview of the course and highlight the major enhancements in C++20. This introduction will set the foundation for understanding the language updates and how they contribute to cleaner, more efficient, and modern C++ programming.
  • Core Language Changes
    • In this module, we will explore foundational changes in C++20 that enhance code clarity, initialization, and compile-time evaluations. By diving into new features such as designated initializers, UTF-8 support, and constexpr improvements, we’ll learn how these updates streamline development and reduce potential errors.
  • Lambda Expressions & Templates
    • In this module, we will explore enhancements in lambda expressions and templates that improve both syntax and functionality. By understanding implicit this, lambda expressions in unevaluated contexts, and new template parameter features, we’ll gain a deeper grasp of modern C++ programming techniques.
  • More Core Language Changes
    • In this module, we will examine additional refinements to the core language, including new attributes and improved enum types. These updates contribute to better-structured, more maintainable code, ensuring greater clarity and correctness in modern C++ development.
  • Text Formatting Library
    • In this module, we will explore the powerful text formatting capabilities introduced in C++20. By leveraging the new formatting library and enhanced stream formatting options, we’ll learn how to produce cleaner, more readable, and internationally adaptable output.
  • Concepts
    • In this module, we will delve into the concepts feature of C++20, which improves the clarity and safety of template programming. By understanding how concepts refine template constraints and how abbreviated templates simplify syntax, we’ll write more maintainable and error-resistant code.
  • Modules
    • In this module, we will explore the C++20 modules feature, a revolutionary change in the way C++ projects are structured and compiled. By working through practical examples, we’ll learn how to leverage modules to enhance code modularity and compilation efficiency.
  • Three-way Comparison
    • In this module, we will dive into the new three-way comparison operator and its impact on relational operations in C++20. By learning about synthesized expressions and ordering categories, we’ll gain a deeper understanding of how these enhancements improve comparison logic and code consistency.
  • Ranges
    • In this module, we will explore the powerful ranges library introduced in C++20. By mastering views, projections, and new algorithm return types, we’ll unlock more concise, readable, and efficient ways to process data.
  • Coroutines
    • In this module, we will dive into coroutines, a game-changing feature for asynchronous programming in C++20. By understanding coroutine workflows, concurrency handling, and exception management, we’ll learn how to write efficient and scalable asynchronous code.
  • Concurrency
    • In this module, we will explore concurrency improvements in C++20 that simplify multithreading. By understanding new threading primitives and synchronization tools, we’ll gain the ability to write safer, more efficient concurrent code.
  • More Additions to Standard Library
    • In this module, we will examine various additions to the standard library that enhance code safety, flexibility, and performance. By leveraging new utilities like std::span and std::source_location, we’ll write more modern, expressive, and efficient C++ code.

Taught by

Packt - Course Instructors

Reviews

Start your review of C++ 20 Mastery - Pure and Unfiltered

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.