T<G> avec T et G de type template
Mon code est:
La fonction sert à savoir si l'objet p appartient au conteneur v.
Code:
1 2 3 4 5 6 7 8 9 10 11
|
template<typename T,typename G>
bool bool_inter2( T<G> v, G p)
{
typename T<G>::iterator it1;
for(it=v.begin();it<v.begin();it++)
{
if(p==*it)return true;
}
return false;
} |
La classe template G, par exmple int, est muni de l'opérateur de comparaison ==.
La classe template F est un conteneur d'objet, par exemple vector, tel que l'on peut parcourir l'ensemble des objets contenus avec l'iterator.
Cependant le code ne compile pas:
Code:
1 2
|
point.cpp:911: erreur: «T» is not a template |
L'autre solution que j'ai envisage est:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
template<typename T,class G>
bool bool_inter( G p, T v)
{
typename T::iterator it;
for(it=v.begin();it<v.end();it++)
{
if(*it==p)return true;
}
return false;
}
template<typename T,class G>
bool bool_inter( T v,G p)
{
typename T::iterator it;
for(it=v.begin();it<v.end();it++)
{
if(*it==p)return true;
}
return false;
} |
De nouveau, ca ne compile pas: il n'arrive pas à choisir entre les deux fonctions.
Avez-vous des solutions merci!