We may earn an affiliate commission when you visit our partners.
Pluralsight logo

Practical C++14 and C++17 Features

Giovanni Dicanio

C++14 and C++17 added many new features to the C++ language. This course will teach you practical features introduced in C++14 and C++17, that you will be able to use to write clearer, simpler, and higher-quality modern C++ code.

Read more

C++14 and C++17 added many new features to the C++ language. This course will teach you practical features introduced in C++14 and C++17, that you will be able to use to write clearer, simpler, and higher-quality modern C++ code.

After the C++11 "revolution," several other features were added by the C++14 and C++17 standards. While C++11 was a massive improvement over the previous C++98/03, C++14 and C++17 are kind of more incremental improvements; nonetheless, interesting, powerful and useful features were added in these recent C++ standards. In this course, Practical C++14 and C++17 Features, you'll learn many practical features added in the C++14 and C++17 standards, assuming you have only a basic knowledge of C++11, like the one you can get watching the "C++11 from Scratch" course; any advanced C++11 concepts will be explained here on a need-to-know basis. Among the many topics discussed in this course, you'll start learning small but nice features, like digit separators. Then you'll explore more substantial features, like polymorphic lambdas (the course will also introduce basic lambdas as well, so you're not left in the dark if you don't know C++11 lambdas), and relaxed constexpr functions. You'll also learn about improvements to the C++ standard library, like the new standard-defined suffixes for the Chrono library (which will be introduced as well), or std::make_unique in combination with the unique_ptr smart pointer (that'll be introduced here as well). Finally, you'll explore new practical C++17 features, ranging from nested namespaces, to "constexpr if" and structured bindings. The features will be discussed using both slides, and with concrete C++ demo code, including showing some subtle bugs, and how to fix them. After completing this course, you'll be able to write simpler, clearer, more efficient and higher-quality modern C++ code, applying the features discussed in this course in your own C++ codebases. This course targets developers who are already familiar with basic C++11, and want to extend their knowledge to practical C++ features introduced in C++14 and in C++17. If you need a beginner-oriented introduction to C++11, you can watch the "C++11 from Scratch" course.

Enroll now

What's inside

Syllabus

Course Overview
Convenient Syntactic Sugar
Miscellaneous Improvements to C++11
Standard Library Improvements
Read more
Better Lambdas
Practical Convenient C++17 Language Improvements

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Suitable for those already familiar with C++11 and looking to advance their knowledge with C++14 and C++17
Taught by Giovanni Dicanio, who is an experienced instructor in software design and development
Explores practical features of C++14 and C++17, which are widely used in the industry
Provides code demonstrations and examples to illustrate the concepts
Covers both small and substantial features, catering to learners with different knowledge levels

Save this course

Save Practical C++14 and C++17 Features to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Practical C++14 and C++17 Features with these activities:
Find a C++ mentor
Connect with an experienced C++ developer who can provide guidance and support.
Show steps
  • Ask around for recommendations
  • Reach out to potential mentors
  • Set up regular meetings or communication
Organize notes and materials.
Prepare your notes and materials for efficient learning throughout the course.
Show steps
  • Gather all notes and materials
  • Organize into a logical structure
  • Create backups or digital copies
Review the book 'Modern C++ Programming Cookbook' by Marius Bancila
Gain a deeper understanding of modern C++ features by reading and reviewing a book dedicated to the subject.
Show steps
  • Read the book
  • Take notes on the most important concepts
  • Write a review of the book
Five other activities
Expand to see all activities and additional details
Show all eight activities
Attend a C++14 or C++17 meetup or user group
Connect with other C++ developers and learn about their experiences with C++14 and C++17.
Show steps
  • Find a local C++14 or C++17 meetup or user group
  • Attend a meeting
  • Participate in discussions and ask questions
Practice using new syntax
Reinforce your understanding of new language syntax introduced in C++14 and C++17.
Show steps
  • Find practice problems online or in books
  • Solve the problems using the new syntax
  • Review your solutions and learn from your mistakes
Learn about dynamic constexpr
Practice writing code in C++17 using constexpr, considering all the consequences and fine details like constant expressions.
Show steps
  • Find some code samples online
  • Run the examples using a C++17 compliant compiler
  • Understand what is going on and its implications
Build a small project using C++14 or C++17 features
Apply your knowledge of C++14 or C++17 features to a practical project.
Show steps
  • Come up with an idea for a small project
  • Design and implement the project using C++14 or C++17 features
  • Test and debug your project
  • Write documentation for your project
Write a blog post or article about a C++14 or C++17 feature
Demonstrate your understanding of a C++14 or C++17 feature by writing a blog post or article about it.
Show steps
  • Choose a feature that you are interested in
  • Do some research on the feature
  • Write a blog post or article about the feature
  • Publish your blog post or article

Career center

Learners who complete Practical C++14 and C++17 Features will develop knowledge and skills that may be useful to these careers:
Computer Scientist
A Computer Scientist conducts research in the field of computer science. Computer Scientists may find this course helpful as they may integrate C++ features into their work. The course can provide a better understanding of C++11 which is a prerequisite for this course. This may help a Computer Scientist conduct research in the field of computer science.
Software Engineer
A Software Engineer is responsible for programming and maintaining software programs. Software Engineers may find this course particularly helpful as they may integrate C++ features into their work. The course can provide a better understanding of C++11 which is a prerequisite for this course. This may help a Software Engineer take on new or complex programming projects.
Computer Programmer
A Computer Programmer writes and tests code for software programs. Computer Programmers may find this course helpful as they may integrate C++ features into their work. The course can provide a better understanding of C++11 which is a prerequisite for this course. This may help a Computer Programmer take on new or complex programming projects.
Software Developer
A Software Developer creates software applications using a variety of programming languages. Software Developers may find this course helpful as they may integrate C++ features into their work. The course can provide a better understanding of C++11 which is a prerequisite for this course. This may help a Software Developer create more efficient and effective software applications.
Data Scientist
A Data Scientist uses math and coding to extract insights from data. Data Scientists may find this course helpful as they may use C++ features in their work. The course can provide a better understanding of C++11 which is a prerequisite for this course. This could help a Data Scientist better analyze and interpret data.
Information Security Analyst
An Information Security Analyst protects an organization's computer systems, networks, and data from cyberattacks. Information Security Analysts may find this course somewhat helpful as they may integrate C++ features into their work. The course can provide a better understanding of C++11 which is a prerequisite for this course. This may help an Information Security Analyst better protect an organization's computer systems, networks, and data from cyberattacks.
Network Administrator
A Network Administrator maintains and manages an organization's computer network. Network Administrators may find this course somewhat helpful as they may integrate C++ features into their work. The course can provide a better understanding of C++11 which is a prerequisite for this course. This may help a Network Administrator better maintain and manage an organization's computer network.
Web Developer
A Web Developer designs and develops websites and web applications. Web Developers may find this course somewhat helpful as they may integrate C++ features into their work. The course can provide a better understanding of C++11 which is a prerequisite for this course. This may help a Web Developer create more efficient and effective websites and web applications.
Systems Analyst
A Systems Analyst helps organizations improve their computer systems. Systems Analysts may find this course somewhat helpful as they may integrate C++ features into their work. The course can provide a better understanding of C++11 which is a prerequisite for this course. This may help a Systems Analyst better improve an organization's computer systems.
Database Administrator
A Database Administrator maintains and manages an organization's databases. Database Administrators may find this course somewhat helpful as they may integrate C++ features into their work. The course can provide a better understanding of C++11 which is a prerequisite for this course. This may help a Database Administrator better maintain and manage an organization's databases.
Computer Systems Analyst
A Computer Systems Analyst analyzes and designs computer systems. Computer Systems Analysts may find this course somewhat helpful as they may integrate C++ features into their work. The course can provide a better understanding of C++11 which is a prerequisite for this course. This may help a Computer Systems Analyst better analyze and design computer systems.
Information Systems Manager
An Information Systems Manager plans and directs an organization's information systems. Information Systems Managers may find this course somewhat helpful as they may integrate C++ features into their work. The course can provide a better understanding of C++11 which is a prerequisite for this course. This may help an Information Systems Manager better plan and direct an organization's information systems.
Computer and Information Systems Manager
A Computer and Information Systems Manager plans, organizes, and directs an organization's computer and information systems. Computer and Information Systems Managers may find this course somewhat helpful as they may integrate C++ features into their work. The course can provide a better understanding of C++11 which is a prerequisite for this course. This may help a Computer and Information Systems Manager better plan, organize, and direct an organization's computer and information systems.
Software Quality Assurance Analyst
A Software Quality Assurance Analyst tests and evaluates software programs to ensure they are free of errors. Software Quality Assurance Analysts may find this course somewhat helpful as they may integrate C++ features into their work. The course can provide a better understanding of C++11 which is a prerequisite for this course. This may help a Software Quality Assurance Analyst better test and evaluate software programs to ensure they are free of errors.
Information Technology Project Manager
An Information Technology Project Manager plans, organizes, and directs information technology projects. Information Technology Project Managers may find this course somewhat helpful as they may integrate C++ features into their work. The course can provide a better understanding of C++11 which is a prerequisite for this course. This may help an Information Technology Project Manager better plan, organize, and direct information technology projects.

Reading list

We've selected ten books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Practical C++14 and C++17 Features.
Provides a concise reference for C++14 and C++17 features, making it a valuable resource for both beginners and experienced programmers to quickly look up information about C++14 and C++17.
Provides a comprehensive guide to modern C++ programming, covering both the language and the standard library.
Provides an in-depth guide to C++ templates, which are an essential part of modern C++ programming.
Provides a comprehensive reference to the C++ Standard Library, which is essential for modern C++ programming.
Provides a comprehensive introduction to C++.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser