Pop Quiz, what&#x27;s the difference between<p><pre><code>    auto x = y;
</code></pre>
and<p><pre><code>    ConcreteClass x = y;
</code></pre>
The difference, of course, is that y wasn&#x27;t actually of type ConcreteClass and you&#x27;ve just performed a potentially incorrect or inefficient cast.<p>auto isn&#x27;t perfect in this regard, though. auto x = y where y is ConcreteClass&amp; makes x ConcreteClass, not ConcreteClass&amp; (there are reasons for this, but it&#x27;s still a potential source of nasty perf bugs).<p>And yeah, you&#x27;re going to have to relearn how to reason about code. This isn&#x27;t a bad thing.