title: In C++, is it bad to pass a const bool by reference?
body: <p>In a practical environment, using gcc or MS Visual Studio, is it bad to pass the value types which are the same size or less than an int by const reference ?</p>
  
  <p>i.e. is it bad to write such a function:</p>
  
  <pre><code>void f(const bool&amp; b);
  </code></pre>
  
  <p>or</p>
  
  <pre><code>void f(const char&amp; c);
  </code></pre>
  
  <p>rather than:</p>
  
  <pre><code>void f(bool b);
  </code></pre>
  
  <p>or</p>
  
  <pre><code>void f(char c);
  </code></pre>
  
  <p>The reason I am asking is that I do not see the benefit of passing a reference in these cases but maybe I am missing something.</p>