HomeCoursesC++17 in Detail: A Deep Dive
AI-powered learning
Save

C++17 in Detail: A Deep Dive

Delve into C++17 to discover major updates enhancing C++'s power and readability, gain essential knowledge, and explore practical examples to stay ahead in modern C++ development.

228 Lessons
10h
Updated 1 month ago
Join 3 million developers at
Join 3 million developers at
LEARNING OBJECTIVES
  • Identify deprecated and removed C++17 language/library features and update code to modern equivalents
  • Apply C++17 evaluation-order rules and copy-elision guarantees to write safer, more predictable code
  • Implement template solutions using CTAD, deduction guides, fold expressions, and if constexpr
  • Use structured bindings, init statements, inline variables, and improved lambdas to simplify code
  • Apply C++17 standard attributes (nodiscard, fallthrough, maybe_unused, deprecated) to improve diagnostics
  • Use optional, variant, any, and string_view safely, including lifetime, access, and performance tradeoffs
  • Build a CSV processing tool using filesystem, from_chars, string_view, and parallel STL algorithms

Learning Roadmap

228 Lessons9 Quizzes

1.

Introduction

Introduction

Get familiar with C++17's updates, clean language features, maps, and efficient debug printing.

2.

Removed or Fixed Language Features

Removed or Fixed Language Features

Unpack the core of C++17's removal and fixing of outdated language features, enhancing clarity and efficiency.

3.

Removed And Deprecated Library Features

Removed And Deprecated Library Features

7 Lessons

7 Lessons

Break apart deprecated and removed C++17 library features to enhance programming practices.

4.

Language Clarification

Language Clarification

12 Lessons

12 Lessons

Grasp the fundamentals of C++17 enhancements for clarity, predictability, and performance optimizations.

5.

Templates

Templates

12 Lessons

12 Lessons

Dig deeper into C++17 template enhancements like argument deduction, fold expressions, and if constexpr.

6.

General Language Features

General Language Features

16 Lessons

16 Lessons

Focus on C++17's enhanced code readability, expressiveness, structured bindings, inline variables, and compiler support.

7.

Standard Attributes

Standard Attributes

11 Lessons

11 Lessons

Build on understanding C++17 attributes like [[fallthrough]], [[nodiscard]], and enhancing code clarity.

8.

std::optional

std::optional

17 Lessons

17 Lessons

Step through C++17's std::optional for managing nullable values and improving code safety.

9.

std::variant

std::variant

22 Lessons

22 Lessons

Grasp the fundamentals of std::variant for type-safe union implementation in C++17.

10.

std::any

std::any

8 Lessons

8 Lessons

Master the steps to effectively using std::any for type-safe storage of any type.

11.

std::string_view

std::string_view

23 Lessons

23 Lessons

Grasp the fundamentals of std::string_view for efficient, non-owning string handling in C++.

12.

Searchers and String Matching

Searchers and String Matching

8 Lessons

8 Lessons

Deepen your knowledge of advanced string matching algorithms and efficient search techniques in C++17.

13.

String Conversions

String Conversions

9 Lessons

9 Lessons

Tackle efficient string conversions in C++17 with from_chars and to_chars for performance gains.

14.

Filesystem

Filesystem

12 Lessons

12 Lessons

Practice using the filesystem library in C++17 for advanced file and directory manipulations.

15.

Parallel STL Algorithms

Parallel STL Algorithms

17 Lessons

17 Lessons

Learn how to use parallel STL algorithms in C++17 for efficient multithreading.

16.

Other Changes in the Library

Other Changes in the Library

13 Lessons

13 Lessons

Discover the logic behind C++17's library enhancements, including std::byte, sampling, and polymorphic allocators.

17.

Refactoring with std::optional and std::variant

Refactoring with std::optional and std::variant

7 Lessons

7 Lessons

Examine refactoring techniques using std::optional and std::variant for enhanced code clarity and error handling.

18.

Enforcing Code Contracts With [[nodiscard]]

Enforcing Code Contracts With [[nodiscard]]

5 Lessons

5 Lessons

Grasp the fundamentals of enforcing safer code practices with C++17's [[nodiscard]] attribute.

19.

Replacing enable_if with if constexpr - Factory with Variable Arguments

Replacing enable_if with if constexpr - Factory with Variable Arguments

3 Lessons

3 Lessons

Solve problems in creating flexible factory methods with if constexpr in C++17.

20.

How to Parallelise CSV Reader

How to Parallelise CSV Reader

13 Lessons

13 Lessons

Tackle parallelizing CSV reading using C++17 features for improved performance and efficiency.
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Fahim Ul HaqC++17 in Detail: ADeep DiveFounder & CEO
Developed by MAANG Engineers
ABOUT THIS COURSE
C++ started in 1979 as an experiment, before being officially launched in 1983. In 1998, its first ISO standard was released. What started as an experimental language has quickly turned into a platform for solving complex problems that drive many industries: gaming, finance, data centres, vehicles, and even software for space missions, among many others. The latest release, C++17, builds upon the functionality of previous versions by further diversifying the power of C++ and increasing the language's readability. This course describes all the significant changes in C++17 and will give you the essential knowledge to stay at the edge of the latest features. What’s more, each section contains lots of practical examples and uses a bottom-up approach to give you a more comfortable start. If you have a moderate understanding of C++, this course is highly recommended as the next step in mastering the modern form of this language.
ABOUT THE AUTHOR

Bartłomiej Filipek

I'm a passionate software developer with more than 14 years of professional experience. I share coding stories at my blog (cppstories.com), I write mostly about C++. In my spare time, I love assembling Lego with my son :) I live in Cracow/Poland.

Learn more about Bartłomiej

Trusted by 3 million developers working at companies

Built for 10x Developers

No Passive Learning
Learn by building with project-based lessons and in-browser code editor
Learn by Doing
Personalized Roadmaps
The platform adapts to your strengths & skills gaps as you go
Learn by Doing
Future-proof Your Career
Get hands-on with in-demand skills
Learn by Doing
AI Code Mentor
Write better code with AI feedback, smart debugging, and "Ask AI"
Learn by Doing
Learn by Doing
MAANG+ Interview Prep
AI Mock Interviews simulate every technical loop at top companies
Learn by Doing