寫模板函數的形式(如果有的話)是什麼,其中參數是模板化的容器?帶模板參數的模板函數的類型推斷
例如我想寫一個通用的總和,它可以在任何可以迭代的容器上工作。鑑於下面的代碼,我必須寫例如sum<int>(myInts)
。我寧願寫sum(myInts)
以及從myInts包含的類型推斷出的類型。
/**
@brief Summation for iterable containers of numerical type
@tparam cN Numerical type (that can be summed)
@param[in] container container containing the values, e.g. a vector of doubles
@param[out] total The sum (i.e. total)
*/
template<typename N, typename cN>
N sum(cN container) {
N total;
for (N& value : container) {
total += value;
}
return total;
}
你知道有'std :: accumulate' for那? – jrok 2012-04-04 16:47:20