函數模板的返回值也可以定義為模板參數(template parameter), 但是由於無法推導(deduce), 需要顯式(explicit)指定;
由於顯式指定的順序是從左至右, 返回值參數盡量放在左面,其余函數參數可以通過傳入實參(argument)進行推導;
也可以提供由其他參數推導出的返回值類型, 需要使用拖尾返回類型(trailing return type);
使用decltype()函數推導, 即"編譯時定義的類型", 注意使用拖尾返回類型時, 前置需要"auto", 後面使用"->";
也可以使用類型轉換模板(type transformation templates)修改返回值類型, 主要應用於模板元編程(template metaprogramming);
注意使用"typename"限定詞, 表明是類型, 不是靜態成員; 類型轉換函數包含type成員, 表明類型;