Best way to think of algorithms is in steps (don't try to grok it as a whole)

Program execution could be viewed as data flowing across scopes.

When serializing data into a file, developers often make a dry run to calculate the size for the header. One possible workaround: add a size data member as the last field in the header struct, then just write the header at the end of the file.

  • Value Semantics

    Some thoughts on using values vs pointers/references.

  • Polymorphism

    A couple notes on polymorphic behaviour.

  • C++ Exceptions

    Neverending struggle to work out the rules of using C++ exceptions, my thoughts on that.
    TLDR. Use them almost always.

#define that (*this)

that.value = ...

std::vector<int> v{}; int i{};
v << 1 << 2;
v >> i;