title: Understanding the benefits of move semantics vs template metaprogramming
body: <p>I've read some descriptions about move semantics in C++11 and I wonder in what context it could be used.
  Currently, many C++ math libraries use template metaprogramming to delay evaluation.</p>
  
  <p>If M = A + B + C*D, where M, A, B, C and D are matrix, template metaprogramming allow to avoid useless copies.
  Is move semantics a more convenient manner to do these sort of things ?</p>
  
  <p>If not, in what context move semantics is used.
  If yes, what are the difference/limitations compared to template metaprogramming for that kind of use ?</p>