我想這樣可以推斷TT類模板的T類創建模板:模板函數模板的參數 - 扣除失敗
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
template < template <typename> class TT, typename T>
T f(TT<T*> & A){
cout << "it works\n";
return *A[0];
};
int main(){
vector<int*> v;
f(v);
return 0;
}
我有一個錯誤(與鏗鏘-4.0):
temded2.cpp: In function ‘int main()’:
temded2.cpp:20:21: error: no matching function for call to ‘f(std::vector<int*>&)’
f<std::vector>(v);
^
temded2.cpp:12:3: note: candidate: template<template<class> class TT, class T> T f(TT<T*>&)
T f(TT<T*> & A){
^
我認爲TT應該等於std :: vector和T應該等於int,我做錯了什麼?
謝謝,作品,當我有:template class TT,typename T>不需要第三個參數。 – peterSweter
@peterSweter很高興幫助。我包含了可變參數,用g ++/clang ++漂亮函數功能演示了從main()調用的實例。很高興這是有道理的。 – WhozCraig