Advanced C++

Effective programming in C++ for intermediate to advanced programmers

Overview

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.

Outline

Introduction

  • 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

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

Exceptions

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

Templates

  • 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

Miscellaneous

  • Smart pointers
  • The Boost Library
  • Practicable design patterns

Requirements

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.