C++ in Detail: Common Idioms
4.4 (26 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
3,863 students enrolled

C++ in Detail: Common Idioms

Learning more about C++
4.4 (26 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
3,863 students enrolled
Last updated 6/2019
English
Current price: $37.99 Original price: $54.99 Discount: 31% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 4.5 hours on-demand video
  • 1 article
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • What programming idiom is
  • Most common C++ idioms
  • C++ polymorphism idioms
  • C++ resource management idioms
  • C++ optimization idioms
  • C++ type system idioms
  • C++ templates idioms
Course content
Expand all 25 lectures 04:32:16
+ Type system
5 lectures 01:14:55
Nullptr
10:59
Type erasure: introduction
15:15
Type erasure: examples from std (any, variant, function)
14:32
Type erasure: implementing any
16:18
+ Polymorphism
4 lectures 37:22
More CRTP
07:19
Virtual constructor: introduction
05:40
Virtual constructor: implementation
09:30
+ Dependencies
3 lectures 36:32
PIMPL: intro
04:08
PIMPL: example
16:25
Fast PIMPL
15:59
+ Templates
4 lectures 40:18
SFINE
16:01
More SFINE
04:09
Enable-if
13:00
Object generator
07:08
+ Resource management
5 lectures 01:03:53
RAII: intro
08:35
RAII: example (part 1)
13:46
RAII: example (part 2)
13:40
Reference counting
18:33
Resource return
09:19
Requirements
  • At least basic knowledge of C++
Description

This course is about common C++ idioms that are related to:

- types system (return type resolver, type erasure, etc.)

- polymorphism (CRTP, virtual constructor)

-  dependencies (PIMPL)

- templates (SFINE, enable-if, object generator)

- resource management (RAII, reference counting, resource return)

- optimization (SOO, EBO)

Idioms emerge from certain features of a programming language or a lack of them.  Thus, learning C++ idioms helps better understand this language.

While learning those idioms, we will touch upon many parts of C++ like template parameters, including parameter pack, overload resolution, types of polymorphism, casting, conversion operators, placement new, special member functions, friend declarations, type deduction, etc.

Who this course is for:
  • Beginner - intermediate C++ developers
  • Students (either self-taught or at university) learning C++