Advanced C++

Effective programming in C++ for intermediate to advanced programmers


This courses provides practical advice on how to get the most out of the C++ language, examining everything from useful idioms and common bear-traps to template programming and the standard library. A lot of emphasis is placed on those parts of the language that we feel bring most value on a day-to-day basis.



  • Back to basics
  • Understanding the compiler
  • Storage classes in depth
  • Stacks and heaps
  • Values, references and pointers
  • Common pitfalls
  • Constructors and destructors
  • Virtual functions and V-tables
  • Minimising compiler dependencies
  • Idioms – Pimpl, Copy-On-Write


  • Namespaces (and how to use them)
  • The using keyword
  • Unnamed namespaces


  • Error handling
  • Exception safety
  • Resource acquisition is initialization
  • std::auto_ptr


  • Function templates
  • Template classes
  • Full and partial specialisation
  • Policy-based programming
  • Compile time assertions

The Standard Library

  • Strings
  • Streams
  • Standard Template Library
  • Programming with vectors, lists, sets and maps


  • Smart pointers
  • The Boost Library
  • Practicable design patterns


This course is suitable only for developers with previous C++ experience

Sign up and stay in the loop

Be the first to know about upcoming workshops, courses, talks and events

Learn more

Great course. The instructor was enthusiastic and knowledgeable and managed to effectively cover the massive topic that is C++ in a short period of time.