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