title: C++: Why is 'operator+=' defined but not 'operator+' for strings?
body: <p>How come <code>operator+=</code> is defined for <code>std::string</code> but <code>operator+</code> is not defined? See my MWE below (<a href="http://ideone.com/OWQsJk" rel="noreferrer">http://ideone.com/OWQsJk</a>).</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;string&gt;
  using namespace std;
  
  int main() {  
      string first;
      first = "Day";
      first += "number";
      cout &lt;&lt; "\nfirst = " &lt;&lt; first &lt;&lt; endl;
  
      string second;
      //second = "abc" + "def";       // This won't compile
      cout &lt;&lt; "\nsecond = " &lt;&lt; second &lt;&lt; endl;
      return 0;
  }
  </code></pre>