Я читал некоторые описания семантики перемещения в C++11, и мне интересно, в каком контексте ее можно использовать. В настоящее время многие математические библиотеки C++ используют метапрограммирование шаблонов для задержки оценки.
Если M = A + B + C*D, где M, A, B, C и D — матрицы, шаблонное метапрограммирование позволяет избежать бесполезных копий. Является ли семантика перемещения более удобным способом делать подобные вещи?
Если нет, то в каком контексте используется семантика перемещения. Если да, то в чем разница/ограничения по сравнению с метапрограммированием шаблонов для такого использования?