title: Use of '&' operator before a function name in C++
body: <p>A reference defines an alternative name for an object. A reference type “refers to”
  another type. We define a reference type by writing a declarator of the form <code>&amp;d</code>,
  where <code>d</code> is the name being declared.</p>
  <p>The next thing is a reference is not an object. Instead, a reference is just another name for an already existing object. So we'll use these references to pass the parameter by reference so that it directly effect the actual parameters.</p>
  <p><strong>Question:</strong>
  What happens when we use a reference (<code>&amp;</code>) <em>before</em> a function name?</p>
  <p>I'm a little bit confused, as in my opinion it will return the alias of return (variable name). Or am I wrong?.</p>
  <pre><code>std::vector&lt;std::string&gt; &amp;split(const std::string &amp;s, char delim, 
                                  std::vector&lt;std::string&gt; &amp;elems) {
      std::stringstream ss(s);
      std::string item;
      while (std::getline(ss, item, delim)) {
          elems.push_back(item);
      }
      return elems;
  }
  </code></pre>