I really like The Hacks of Life and think it&#x27;s one of the best blogs on the Internet, but this time they really got it wrong.<p>The title should not be <i>The Dangers of Super Smart Compilers</i> but rather <i>The Dangers of Engineers Trying to be Super Smart with C++</i>. Yes that&#x27;s right. Having operator== and operator!= overloads for stuff like pointers in your code means that you&#x27;re either a 0.01% Super Engineer who 100% of the time knows what the f* he&#x27;s doing and knows that it&#x27;s actually necessary for the problem at hand (overall not so likely), or it means that your code is unnecessarily complicated and there&#x27;s an easier and more elegant and more readable solution if you take a step back and re-factor some stuff (more likely, and yes sometimes it means taking a lot of steps back).<p>But please when stuff goes wrong, don&#x27;t blame the compiler first.