1. C++ is not going anywhereThat's the tip - it is a motivational one. I hear so many people announcing the death of C++ and how it is in decline and it is over. Even from within our community. Yet now there are more C++ developers than ever. Yes - other languages grow faster and the share of C++ is not growing but that is OK. It should be expected - we cant use C++ for everything. It does not make any sense.

Tons of new features are coming into the language! Exciting times! So, please, stop the gloom and doom. C++ is not going anywhere.

2. noexcept move operations
Always try to make your move assignment and move constructor noexcept. The reason for this is STL is noexcept-aware and it does a lot less when it knows there will be no exception trowing during the movement of elements in the containers.

For example std::vector must be able to restore the previous state if something trows during reallocation (when calling emplace_back(...) for example). Knowing that nothing will trow opens the door for optimizations.

In general you should try to make as much functions noexcept as possible.

std::addressof obtains the actual address of the object or function, even in the presence of overloaded operator&. Imagine you are super paranoid that someone will constantly overload your operators. This is the way to get the pointer without worrying.