1
是什麼解釋,下面的測試案例編譯失敗的根本原因:推導可變參數模板失敗?
#include <iostream>
#include <vector>
#include <numeric>
#include <algorithm>
template<typename Type, typename... Args>
void apply(std::vector<Type> &v, Args... args, void(*algo)(Type*, Type*, Args...))
{
algo(&*v.begin(), &*v.end(), args...);
}
int main()
{
std::vector<int> v(10, 50);
apply(v, 3, std::iota);
for (unsigned int i = 0; i < v.size(); ++i) {
std::cout<<v[i]<<std::endl;
}
}
是否有函數原型解決方法?
'apply(v,std :: iota,3);'[也很好](http://liveworkspace.org/code/6809848b76a05fc6c5f947d36c8063b7) - 不需要手動指定'Args ...' 。 (並且此處沒有模板模板參數。) –
ildjarn
模板模板是錯誤的詞,但我想不出正確的模板模板參數。 – Wug