The goal of this hands-on course is to introduce modern C++11 to C++20 and apply it to the design and implementation of quantitative finance applications.
Level 1 - Modern C++ Essentials
- C++11/17/20 Core Language Features
- Lambda Functions
- Improving classes (avoiding generation of special functions, move semantics, explicit constructors, no except)
- Variadic fundamentals
- Universal function wrappers and C++11 Bind
- Sealed Classes
Level 2 - Advanced C++ Features
- Type Traits and Template Metaprogramming
- Advanced Lambdas
- Variadic Template Metaprogramming
- STL and Boost Bitset, Smart Pointers, Function Objects, and Lambdas
- Platform-dependent and platform-independent error codes and error conditions
- Auto deduction rules for braced initialisation lists
- The seven ways to initialise variables
- std::byte
- Three-way (spaceship) operator
- Template parameter lists for lambda functions
- Fold expressions for recursive data structures; applications
- std::string_view
- String literals as template parameters
- std::optional
- std::span
Level 3 - Concurrency
- Essentials of Boost and C++11 threading
- Advanced C++ Concurrency
- C++ Tasks and tasking applications
- Extensions for Parallel STL
Level 4 - STL, Data Structures, and Random Numbers
- New data structures and data types
- STL algorithms in a multi-paradigm programming environment
- Random numbers and statistical distributions
Level 5 - Boost Libraries
- Boost Libraries Overview S
- tring Algorithm Library
- Regular expressions and RegexHash
- Unordered
- BitmapHeap
- Matrix Libraries (Boost uBLAS) Signals and Slots (Boost signals2)
Level 6 - Modern Design Patterns
A refresh of the GOF design patterns using modern C++ techniques. Patterns include
- Singleton
- Factory
- Composite
- Prototype
- Proxy
- Strategy
- Decorator
- State
- Visitor
- Observer
- Propagator
Level 7 - Modern Design Patterns Continued + Advanced Language Features
- Factory
- Template Method Pattern
- State
- Observer
- Concepts
- Modules