At C++Now 2018 I gave a talk about rethinking pointers: foonathan.net/cppnow2018.html.
I highly recommend you check it out, even if you watched the similar talk I gave at ACCU, as that version is a lot better. It rediscovers and discusses the common guidelines about when to use references over pointers, when smart pointers, etc.
If you’re an expert, you might get a deeper meaning from the structured analysis. And if you’re a beginner, you get the condensed guidelines.
However, I think the most valuable thing is the taxonomy of pointer types.
It gives new vocabulary when talking about
std::optional<T&> which gives the whole discussion an obvious answer.
And here is also the big problem: Naming is hard.
In particular, my naming of the taxonomy in the talk is bad, so let’s introduce new names.» read more »