title: Passing scalar types by value or reference: does it matter?
body: <p>Granted, <a href="http://blog.codef00.com/2009/02/11/micro-optimization-is-stupid/" rel="noreferrer">micro-optimization is stupid</a> and probably the cause of many mistakes in practice. Be that as it may, I have seen many people do the following:</p>
  
  <pre><code>void function( const double&amp; x ) {}
  </code></pre>
  
  <p>instead of:</p>
  
  <pre><code>void function( double x ) {}
  </code></pre>
  
  <p>because it was supposedly "more efficient". Say that <code>function</code> is called ridiculously often in a program, millions of times; does this sort of "optimisation" matter at all? </p>