title: Purpose of returning by const value?
body: <p>What is the purpose of the const in this?</p>
  
  <pre><code>const Object myFunc(){
      return myObject;
  }
  </code></pre>
  
  <p>I've just started reading Effective C++ and Item 3 advocates this and a Google search picks up similar suggestions but also counterexamples. I can't see how using const here would ever be preferable. Assuming a return by value is desirable, I don't see any reason to protect the returned value. The example given for why this might be helpful is preventing unintended bool casts of the return value. The actual problem then is that implicit bool casts should be prevented with the explicit keyword.</p>
  
  <p>Using const here prevents using temporary objects without assignment. So I couldn't perform arithmetic expressions with those objects. It doesn't seem like there's ever a case that an unnamed const is useful.</p>
  
  <p>What is gained by using const here and when would it be preferable?</p>
  
  <p>EDIT: Change arithmetic example to any function that modifies an object that you might want to perform before an assignment.</p>