Ciere Consulting Logo Ciere Consulting
Latin : /ki-ɛɹ-ə/ to conjure, to summon, to put in motion
Software Contracting, Project Consulting, C++ Training, and Mentoring

Training - Modern C++ [Polyglots]

Modern C++ for Polyglots is a 16-hour training course taught by Michael Caisse. It is currently offered as a Live and Interactive online public or private course.

Here is the upcoming public course schedule. Click on the course title for more information and to purchase tickets.

All online classes are taught across 4-days, 4-hours each day.

October 5 - 8, 2020Online$800.00

Course Description

"Thanks Michael for offering one of most impressive, conceptually clear, immersive and enjoyable courses I have ever taken!"

Fluent with another modern programming language and need a kick-start with C++? This 16-hour course has been designed to provide other-language-programmers an introduction to the Modern C++ language. We will dive into portions of the core language and standard library that enable modern idioms and best practices. We wont spend time on old-school techniques. Concepts and techniques are solidified through examples and exercises.

Join us and start using the power of Modern C++ in your own projects!


Participants should be proficient in a contemporary langauge such as Java, Javascript, C#, or Python.

This course includes exercises, so bring your laptop and your favorite C++14/17/20 development environment.

Course Topics

Some of the topics covered:

  1. C++ and the Machine Model

  2. Fundamental Types

  3. Values, References, Pointers
    • Value Semantics
    • References are Aliases
    • Pointers
  4. Free functions
    • Declaration/Definition
    • Overloads
    • Scoping
  5. Namespaces, annonymous namespaces

  6. Objects
    • scope / visibility
    • RAII
    • member initialization
    • special member functions (move semantics and RVO)
    • defaulted and deleted members
    • delegating constructors
    • inheritance
    • virtual
    • Inheriting constructors
    • override and final
    • namespaces
  7. ADL

  8. Initialization
    • Uniform initialization
    • Initializer lists
    • auto
  9. Range based for loops

  10. Generic Programming
    • Template functions
    • Template classes
    • template alias
  11. Lambda Expressions

  12. Standard Containers and Algorithms
    • Also tuple here
  13. Smart pointers
    • Usage of unique, shared, and weak pointers
    • Ownership and raw pointers
  14. Polymorphic function wrapper std::function

  15. Compile Time / Run Time
    • constexpr

Contact us for more information: