Potential Topics¶
Basics
compiling c++
Iterating matrices in the wrong order - cache conscious indexing
Arena allocators
using things like reserve
Data structures:
benchmarks
compare the different data structures and go into detail on each of them
When std::map may be better than std::unordered_map
constexpr compatible data structures
sorted vectors over maps
stack vs heap allocations
Caches
Packing structs
size of structs with static data members
Alignment and padding
struct ordering when it comes to public and private methods
SIMD / Vectorization
inlining code - and what inlining means in C++
Compile time data structures
For fun
For performance
Talk about costs at compile time
Tail call optimization
Avoiding exceptions
SOAs vs AOSs
Linux related stuff - polling, pinning talks, kernel bypass
Templates
Compiler intrinsics
lambdas vs std::function
avoiding virtuals & CRTP
Design / interfaces
likely / unlikely compiler directives
using move
raii
branch prediction and avoiding ifs
loop unrolling
using switch statements instead of calculating - example POW - benchmark