Here&#x27;s an implementation of &lt;experimental&#x2F;observer_ptr&gt; set for C++17 aka the world&#x27;s dumbest (and most poorly named) smart pointer.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;martinmoene&#x2F;observer-ptr&#x2F;blob&#x2F;master&#x2F;include&#x2F;nonstd&#x2F;observer_ptr.h" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;martinmoene&#x2F;observer-ptr&#x2F;blob&#x2F;master&#x2F;incl...</a><p>I&#x27;m using a modified version in a personal library. It throws an exception on a nullptr dereference. I&#x27;m not sharing that version here because A. it&#x27;s not ready, and B. You&#x27;re definitely a better programmer than me and I don&#x27;t feel like getting totally shit on today :)<p>I thought the whole point of the &quot;world dumbest smart pointer&quot; was that it&#x27;s automatically nullptr&#x27;d for you so it can&#x27;t dangle. I&#x27;m looking forward to hear why this isn&#x27;t true. I&#x27;ve actually been brooding over this perceived advantage of C++ for a while now.