C++ Advanced training course

Exploit Advanced Language & Library Features of C++ & 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

31/08/26 - 4 days
£2950 +VAT
12/10/26 - 4 days
£2950 +VAT
23/11/26 - 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
  • Understand how Templates work with functions
  • Gain an introduction to metaprogramming
  • 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 additional features when extra time available

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
  • Template metaprogramming vs constexpr

 

Part 3: C++ Idioms and Design Patterns

Implementing Value Types

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

Value Categories

  • Consideration of C++ Value Categories

The Handle/body Idiom

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

Functors

  • What are functors?
  • Implementing functors using operator overloading
  • Relationship to lambdas

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)
  • std::shared_ptr and std::unique_ptr

Singletons

  • 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; function objects and algorithms

Containers

  • Sequence containers
  • Associative containers
  • Adapters

Traits

  • The need for traits
  • Implementation of traits in STL

Iterators

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

Algorithms

  • The STL standard algorithms
  • Creating and using algorithm
  • Use of function objects and lambdas

Optional topics (extra time on private courses)

  • Template related features
  • Concepts
  • Ranges (Library)
  • Threading
  • C++ 20 / 23 Library features

 

  

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

Newsletter


Sign up for the JBI Training newsletter to receive technology tips directly from our instructors - Analytics, AI, ML, DevOps, Web, Backend and Security.
 



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.
JBI Training offers six C++ courses covering the full range of experience levels and specialisms. Available courses include C++ Introduction (four days), C++ Advanced (four days), C++ 20 and 23 (four days), Visual C++ and MFC (five days), Test Driven Development with C++ (three days), and AI-Assisted C++ Development (three days). All courses are available as scheduled classroom sessions in London, as live online instructor-led training, or as customised onsite programmes for development teams.
C++ is a high-performance, general-purpose programming language that gives developers a high degree of control over system resources and memory. It is used across a wide range of industries and application types including embedded systems, operating systems, game engines, financial trading systems, real-time processing, graphical user interfaces, server-side processes, and high-performance computing. C++ is valued for its combination of low-level memory control and high-level object-oriented and generic programming features, making it one of the few languages capable of delivering both performance and abstraction at scale. It remains one of the most widely used programming languages in systems and performance-critical software development.
The C++ Introduction course is a four-day programme designed for developers who are new to C++ or coming from another language such as C, Java, or C#. It covers the core language features including object-oriented programming, memory management, pointers and smart pointers, data structures, inheritance, polymorphism, templates, and an introduction to the Standard Library. The C++ Advanced course is a four-day programme for experienced C++ developers who want to deepen their expertise. It covers advanced templates and metaprogramming, C++ idioms and design patterns, the Standard Template Library in depth, the Boost libraries, policy-based design, and advanced use of language features for correctness and performance.
The C++ 20 and 23 course is a four-day programme covering the features introduced in the C++20 and C++23 standards — the most significant updates to the C++ language in over a decade. C++20 introduced concepts (constraints on template parameters), ranges (a new approach to working with sequences of data), coroutines (for asynchronous and cooperative multitasking), modules (a replacement for the traditional header file system), and significant improvements to the standard library. C++23 builds on these foundations with further library enhancements and language refinements. The course is designed for C++ developers who are already familiar with modern C++ (C++11 through C++17) and want to adopt the latest language standards in their codebase.
Test-driven development (TDD) is a software development practice in which tests are written before the implementation code they are intended to verify, following a red-green-refactor cycle. The developer writes a failing test, writes the minimum code needed to make it pass, then refactors the code while keeping the tests passing. JBI's three-day Test Driven Development with C++ course teaches this discipline in the context of C++ development, covering unit testing frameworks for C++, how to write effective and maintainable tests, applying TDD to object-oriented and generic C++ code, refactoring techniques, and how to integrate TDD into a professional C++ development workflow. It is suitable for C++ developers who want to improve code quality, reduce defects, and build more maintainable software.
The AI-Assisted C++ Development course is a three-day programme that teaches C++ developers how to work professionally and effectively with AI coding assistants such as GitHub Copilot, Claude Code, and similar tools in a C++ development context. The course covers how to write clear specifications and prompts that produce useful C++ code from AI agents, how to evaluate and critically review AI-generated C++ code for correctness, safety, and performance, how to apply test-driven development as a verification discipline when working with AI-generated code, and how to integrate AI coding tools into a professional C++ development workflow without compromising code quality or security. It is designed for practising C++ developers who are beginning to use or wanting to use AI coding tools more effectively.
Visual C++ is Microsoft's C++ development environment within Visual Studio, and MFC (Microsoft Foundation Classes) is a C++ class library that wraps the Windows API, enabling developers to build Windows desktop applications using object-oriented C++. The five-day Visual C++ and MFC course is designed for developers who need to build or maintain Windows desktop applications using Microsoft's C++ toolchain. It covers the Visual Studio development environment, the MFC application framework, window management, message handling, dialog boxes, controls, GDI graphics, file handling, and database access. It is particularly relevant for developers maintaining legacy Windows applications built with MFC, or those building new Windows desktop software in a Microsoft environment.
C++ compiles directly to machine code, giving it performance characteristics that managed languages such as C# and Java cannot match in scenarios where execution speed, memory control, or hardware proximity are critical. C# and Java run on managed runtimes (CLR and JVM respectively) which provide memory management, garbage collection, and platform portability at the cost of some control and performance overhead. C++ is the right choice when performance is paramount — such as in game engines, financial trading systems, embedded systems, operating systems, and real-time processing — or when direct hardware access or fine-grained memory management is required. For most business application development where performance is not the primary concern, C# or Java may be more productive. JBI offers training in all three languages.
Yes. All C++ courses at JBI can be delivered as customised onsite or online programmes for corporate development teams. Content can be tailored to the team's specific C++ standard (for example C++17 or C++20), the platforms and compilers they use, the application domain (embedded, finance, gaming, systems), and any specific language features or codebase challenges they want to address. Organisations with existing C++ codebases can request training that uses their own code as the basis for exercises, which is particularly effective for teams working through a migration to a newer C++ standard or adopting modern C++ practices in a legacy codebase. JBI has delivered C++ training for development teams at organisations including the BBC, NHS, Cisco, Sky, RBS, and EDF.
Yes. JBI's C++ training content is continuously reviewed and updated to reflect the latest ratified C++ standards and compiler support. This currently includes C++20 and C++23, with coverage of features such as concepts, ranges, coroutines, and modules. Course content also reflects current best practices in modern C++ development — including the use of smart pointers, RAII, the Standard Template Library, and the Boost libraries — as well as the growing role of AI coding assistants in C++ development workflows. Delegates learn skills that are current and applicable to professional C++ development today.

CONTACT
+44 (0)20 8446 7555

[email protected]

 

Copyright © 2026 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

POPULAR

AI training courses                                                                        CoPilot 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

Data Storytelling training course                                               C++ training course

Power Automate training course                               Clean Code training course