I disagree, and think people should use lots and lots of temporary variables. variables like &quot;retval&quot;, &quot;data&quot; or even &quot;result&quot;, as quoted in GP.<p>I have zero qualms about writing two lines<p><pre><code>  bool passes = &#x2F;*stuff goes here*&#x2F;
  if (passes) {

     }
</code></pre>
whereas it is trivial that you could fold this into one line.  the ONLY thing you&#x27;re adding is the term &quot;passes&quot;.  Which most certainly <i>is</i> meaningful to the human reading it.<p>Compare:<p><pre><code>  if (!(i%2))
</code></pre>
with<p><pre><code>  bool isodd = i%2;
  if (!isodd)
</code></pre>
which test do you think you&#x27;ll accidentally flip the parity of?<p>Likewise I find &quot;retval&quot;, &quot;data&quot;, etc, to be perfectly fine variable placeholders while you treat the thing for a few lines.