函數模板在調用函數的時候, 由於實參(argument)轉換形參(parameter)的時候, 會發生改變, 導致無法保留原實參的信息, 即推進(forward)問題;
主要包括: 引用和右值;引用, 即因為模板參數非引用, 導致復制操作, 無法提供引用類型;右值, 即因為模板參數只能轉換為左值, 無法提供右值;
解決方法:
引用: 使用右值參數(T&& t), 可以保證傳遞引用不發生改變;
右值:使用右值參數, 再使用forward()函數(#include<utility>), 可以把實參轉換為初始類型, 左值或右值;