Advanced C++11 and C++14

(code CPPA-11)


This three-day hands-on course discusses advanced syntax and language features in C++. It is the follow-up to the course Fundamentals of C++11 and C++14 (code CPPF-11). We cover most of the new features in what feels like a new language compared to C++98. In particular, we introduce new syntax to make C++ easier to learn and to apply to software development and we also discuss the new libraries in the language. We also give an introduction to the functional programming style and how it is supported in C++11.

Having discussed the most important functionality we then move to the design of sequential and parallel programs (on multi-processor computers) in C++. To help in this endeavour, we apply the features in C++ to create more modern versions of software design patterns and parallel design patterns.

After having completed this course you will be able to apply C++ and use it in advanced applications. We assume that the student has C++ knowledge to the level of the course Fundamentals of C++11 and C++14 (code CPPF-11).

The percentage theory/practice is approximately 70/30. The language is extensive and we give compact exercises and demo code to show the essentials of each language feature.

Subjects Covered

  • Multiparadigm design: support for the object-oriented, generic and functional programming styles.
  • Improved features.
  • New data types and containers.
  • Type traits and template metaprogramming (TMP).
  • IEEE 754 and floating-point arithmetic in C++.
  • STL algorithms A-Z.
  • Multihreading and multitasking in C++.


  • Learn advanced C++11/C++14 in a step-by-step manner.
  • Using C++ libraries instead of third-party proprietary libraries.
  • Learn how to design advanced applications in C++.
  • Use C++ Concurrency to write multithreaded and parallel code.
  • Use C++11/C++14 to create multiparadigm design patterns.

For whom is this Course?

This course is suitable for experienced C++ developers who ideally have some knowledge of C++11. The course is also useful for software architects and designers who are involved with C++ projects.

If you are interested in taking this course (in original or customised form) please contact us at


What do you receive?

Course slides and full source code related to the course.

Follow-up Courses

Advanced System Design and Software Design Patterns (DESA).


Click here for course contents.


Your Trainer

Daniel J. Duffy started the company Datasim in 1987 to promote C++ as a new object-oriented language for developing applications in the roles of developer, architect and requirements analyst to help clients design and analyse software systems for Computer Aided Design (CAD), process control and hardware-software systems, logistics, holography (optical technology) and computational finance. He used a combination of top-down functional decomposition and bottom-up object-oriented programming techniques to create stable and extendible applications (for a discussion, see Duffy 2004 where we have grouped applications into domain categories). Previous to Datasim he worked on engineering applications in oil and gas and semiconductor industries using a range of numerical methods (for example, the finite element method (FEM)) on mainframe and mini-computers.

Daniel Duffy has BA (Mod), MSc and PhD degrees in pure and applied mathematics and has been active in promoting partial differential equation (PDE) and finite difference methods (FDM) for applications in computational finance. He was responsible for the introduction of the Fractional Step (Soviet Splitting) method and the Alternating Direction Explicit (ADE) method in computational finance. He is also the originator of the exponential fitting method for time-dependent partial differential equations.

He is also the originator of two very popular C++ online courses (both C++98 and C++11/14) on in cooperation with Quantnet LLC and Baruch College (CUNY), NYC. He also trains developers and designers around the world. He can be contacted for queries, information and course venues, in-company course and course dates.

Advanced C++11 and C++14

Fill in your personal details