title: Operator + for matrices in C++
body: <p>I suppose the naive implementation of a + operator for matrices (2D for instance) 
  in C++ would be:</p>
  
  <pre><code>class Matrix {
  
    Matrix operator+ (const Matrix &amp; other) const {
        Matrix result;
        // fill result with *this.data plus other.data
        return result;
    }
  }
  </code></pre>
  
  <p>so we could use it like</p>
  
  <pre><code>Matrix a;
  Matrix b;
  Matrix c;
  
  c = a + b;
  </code></pre>
  
  <p>Right?</p>
  
  <p>But if matrices are big this is not efficient as we are doing one not-necessary copy (return result).</p>
  
  <p>Therefore, If we wan't to be efficient we have to forget the clean call:</p>
  
  <pre><code>c = a + b;
  </code></pre>
  
  <p>Right?</p>
  
  <p>What would you suggest / prefer ?
  Thanks.</p>