I do not consider the API of a reasonably complex construct &quot;obvious&quot;.  That is often where IDEs shine for me - in java or any other language that can gather that info for me.  It&#x27;s scenarios where I don&#x27;t have to go to cppreference.com, because the IDE is going to give me what I want directly.<p>I used to really be anal on making every single line explicit: no shortcuts.  But over time, especially with increasing my usage of templates, I&#x27;ve come to relax on these things and prefer to put my efforts in good variable names and trusting the compiler.<p>I&#x27;m not saying you should use auto for basic types (especially ones that can be easily cast into each other - that shit gets dangerous).  I am saying that auto is extremely powerful when working with most interesting APIs.  The most recent example I have is a lot of things I end up doing with chrono.