Expert-led training for your team

C++ Advanced training course

Exploit Advanced Language & Library Features of C++ And Get Increased Productivity

JBI training course London UK

"A good and thorough course for advanced C++ techniques - well delivered by zoom, in a small group allowing some really one to one tutoring to take place."

ZL, Data Analyst, C++ Advanced, June 2021

Public Courses

24/06/24 - 4 days
£2950 +VAT
05/08/24 - 4 days
£2950 +VAT
16/09/24 - 4 days
£2950 +VAT

Customised Courses

* Train a team
* Tailor content
* Flex dates
From £1200 / day
EDF logo Capita logo Sky logo NHS logo RBS logo BBC logo CISCO logo
JBI training course London UK

  • Learn to use Language Features Correctly
  • Gain an introduction to metaprogramming
  • Understand how Templates work with functions
  • Explore C++ Idioms and Design Patterns
  • Understand smart pointers
  • Learn Policy-Based Design
  • Exploit Advanced Language & Library Features of C++ And Get Increased Productivity
  • Apply Containers: Sequence and Associative containers and Adapters
  • Learn Standard Template Library with concept based programming 
  • Explore Boost and The Boost Libraries

Part 1: Using Language Features Correctly

Const and Casting

  • Const correctness
  • Overloading on const
  • C++ cast operators
  • Mutable

Conversions and Scope

  • Standard conversions
  • Converting constructors
  • User defined conversions
  • Namespaces
  • Koenig lookup
  • Nested types
  • Static

Proper Exception Handling

  • Throwing and catching correctly
  • Exception safe code

Memory Management

  • The new handler
  • Placement new
  • Overloading new and delete

Part 2: Templates

Template Functions

  • What are templates?
  • Implementing template functions
  • Template instantiation

Template Classes

  • Creating a template class
  • Class instantiation
  • Non-type template parameters
  • Specialization

Template Metaprogramming

  • A brief introduction to metaprogramming

Part 3: C++ Idioms and Design Patterns

Implementing Value Types

  • What are value types?
  • Construction and destruction
  • Copying and assignment
  • Operator overloading

The Handle/body Idiom

  • The Bridge design pattern
  • Using Bridge to decouple compilation
  • Implementing handle/body


  • What are functors?
  • Implementing functors using operator overloading

Smart Pointers

  • What are smart pointers?
  • Uses of smart pointers in C++
  • Implementing a simple smart pointer
  • Reference counting and smart pointers
  • Std::auto_ptr (deprecated)


  • The Singleton design pattern
  • A naïve implementation
  • Problems with Singleton in C++
  • Controlling Singleton lifetime

Policy-Based Design

  • Efficient library design
  • Mixing templates and multiple inheritance
  • Policies and policy classes

Part 4: Standard Template Library

STL concepts

  • Concept-based programming
  • Containers, iterators and algorithms


  • Sequence containers
  • Associative containers
  • Adapters


  • The need for traits
  • Implementation of traits in STL


  • The Iterator design pattern
  • Iterator concepts in C++
  • Iterators and containers
  • Implementing and using iterators
  • Stream iterators


  • The STL standard algorithms
  • Creating and using algorithm

Part 5: The Boost Libraries

Introduction to Boost

  • What is Boost?
  • Obtaining and installing Boost
  • Overview of the Boost libraries

Common Boost Libraries

  • boost::tuple
  • boost::any
  • boost::ref
  • The Boost smart pointers
  • boost::bind
JBI training course London UK

Experienced C++ programmers, who are looking to gain advanced skills and programming techniques using C++

5 star

4.8 out of 5 average

"A good and thorough course for advanced C++ techniques - well delivered by zoom, in a small group allowing some really one to one tutoring to take place."

ZL, Data Analyst, C++ Advanced, June 2021

“JBI  did a great job of customizing their syllabus to suit our business  needs and also bringing our team up to speed on the current best practices. Our teams varied widely in terms of experience and  the Instructor handled this particularly well - very impressive”

Brian F, Team Lead, RBS, Data Analysis Course, 20 April 2022



JBI training course London UK



Sign up for the JBI Training newsletter to stay updated with world-class technology training opportunities, including Analytics, AI, ML, DevOps, Web, Backend and Security. Our Power BI Training Course is especially popular.  Gain new skills, useful tips, and validate your expertise with an industry-leading organisation, all tailored to your schedule and learning preferences.

This advanced C++ training course aims to take C++ programmers to a new level of understanding and competence in their use of the C++ language and libraries. The course builds on existing knowledge, showing how to use basic language features correctly, it then covers templates, the language feature that underlies the Standard Template Library and most recent advances in C++. The third part majors on OO development, and shows how popular idioms and design patterns can be implemented in C++. The final two sections look at the two main libraries used by C++ programmers today: the Standard Template Library and the Boost libraries.

+44 (0)20 8446 7555

[email protected]



Copyright © 2023 JBI Training. All Rights Reserved.
JB International Training Ltd  -  Company Registration Number: 08458005
Registered Address: Wohl Enterprise Hub, 2B Redbourne Avenue, London, N3 2BS

Modern Slavery Statement & Corporate Policies | Terms & Conditions | Contact Us


Rust training course                                                                          React training course

Threat modelling training course   Python for data analysts training course

Power BI training course                                   Machine Learning training course

Spring Boot Microservices training course              Terraform training course

Kubernetes training course                                                            C++ training course

Power Automate training course                               Clean Code training course