Templates in C++ are a way to write generic, type-independent code — code that works with many types without duplication. Its a powerful feature to do generic programming. As the name suggests ...
From a purely object-oriented perspective, "copy semantics" is the right way to preserve control over object ownership. But in those scenarios where ownership becomes irrelevant, C++11 "move semantics ...