2013-02-10 5 views
-1

Я получаю ошибку компилятора, который говоритПередача векторов различных типов в функции шаблона

could not deduce template argument for 'std::vector<T*>&' from 'std::vector<_Ty>'

template <typename T> void foo(vector<T*>& a, int left, int right) 
{ 
    ... 
} 

main() 
{ 
    ... 
    //declare and instantiate 3 vectors 
    vector<int> intVector; 

    foo(intVector, 0, 100); 
    foo(doubleVector, 0, 100); 
    foo(charVector, 0, 100); 
    ... 
} 
+4

'vector &' означает, что вы хотите вектор указателей, и вы даете ему вектор без указателей. –

+0

Почему вы делаете 'vector ', а не только 'vector '? – 0x499602D2

ответ

0

int может не совпадать T*.

Либо сделайте vector a vector<int*> или сделайте шаблон за себя vector<T>.