I don't know if this is too basic or not, but how about making an episode about best practices for parameter passing in C++11?

Like, when do you pass by value, by lvalue reference, by lvalue reference to const, by rvalue reference, by rvalue reference to const, by pointer or by pointer to const? When should you prefer passing iterators instead? Is it a good idea to have iterators as members? Or should they just be used inside a function? How do you pass stuff into members? Should move-only types be passed by rvalue reference or or by value? Should we pass shared pointers by lvalue reference to const, by rvalue reference to const or by value?

What do we do in generic code? How do we decide what the best passing mode for T is? (Doesn't Boost have a meta-function for this?) What's the difference between ConreteType&& and TemplateParameter&&? Related: what does auto&& mean, and when should I use it?

I think it would be really helpful, especially for beginners, if you could dissect these issues in the next episode.

At 35:12, you start talking about move semantics in the context of the flip function taking a string by value, but there are no move semantics involved here. Since the arguments are const char arrays, the string variable s is simply initialized by the constructor string(const char*), as it always has been.