Я хочу создать шаблон, как это, которое может вывести шаблон класса 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, что я делаю неправильно?
Спасибо, работает, когда у меня есть: шаблон <шаблон class TT, typename T> не нужен третий параметр. –
peterSweter
@peterSweter Рад, что это помогло. Я включил переменный аргумент для демонстрации с помощью функции g ++/clang ++ pretty-function, которая действительно создается при вызове из 'main()'. Рад, что это имеет смысл. – WhozCraig