title: Dereferencing a reference
body: <p>I'm reading "The C++ Programming Language (4th edition)" and I ran into this:</p>
  
  <pre><code>template&lt;class C, class Oper&gt;
  void for_all(C&amp; c, Oper op) // assume that C is a container of pointers
  {
      for (auto&amp; x : c)
          op(*x); // pass op() a reference to each element pointed to
  }
  </code></pre>
  
  <p>So from what I understand, we're iterating through <code>c</code> and getting a reference to <code>x</code>, which is the current iteration. <code>x</code> is then passed to the function call operator of <code>op</code>, but it is dereferenced first? Why would <code>x</code> be dereferenced?</p>