2011-04-21 28 views

回答

12

是的,你可以把它一個函數模板:

template<class T> 
void myFunction(const std::map<std::string,T>& tMap); 
+1

而只要T類支持的地圖結構 - 例如一個合適的拷貝構造函數等。 – Blazes 2011-04-21 08:54:36

+1

@Blazes:堅實的點,帶有微妙的含義。從表面上看,如果'T'不是一個兼容'map'的需求的類型,你可能似乎沒有'T'的map來調用函數,它通常是第一個實例化一個函數的函數類的模板的方法,該類不支持這將觸發編譯器錯誤.... – 2011-04-21 09:22:43

+0

這在這裏都有點不相干,不是嗎?來電者必須有地圖開始。這個函數可以安全地假定'T'是一個有效的類型。 – MSalters 2011-04-21 11:23:31