有什麼辦法強制函數只接受整數的向量(int,unsigned int,uint32_t等),只有那些?即時通訊編程嘗試寫一個簡單的函數返回所有值的相同返回類型的總和(因爲我不能確定該值是否會大於(2^32 - 1)。但是,因爲std::vector<T>
沒有因爲它會返回一個向量(忽略vector +向量不起作用的事實),我不希望每種類型都重載,因爲我不需要它。想要的功能工作時,T是某種形式的int(以及浮動如果可能)使用try/except
強制一個函數只接受一組特定的數據類型
IVE試過,但碼塊捕捉類型的運營商,所以,如果我做sum(vector <vector <T> >)
template <typename T>
T sum(std::vector <T> in){
try{
T total = 0;
for(int x = 0; x < in.size(); x++)
total += in[x];
return total;
}
catch (int e){
std::cout << "Error " << e << " has occured." << std::endl;
exit(e);
}
}
我不能編譯
如果'T'爲一個整數類型,這是不可能的'int'在你的代碼拋出。 – 2011-06-09 04:52:52
我不熟悉使用try/catch – calccrypto 2011-06-09 05:11:04
我建議不要使用它們,直到你知道它們是什麼。作爲一個經驗法則,代碼越少越好。 – 2011-06-09 05:16:57