fonction template pour container
Bonjour,
Je souhaiterais écrire une fonction template qui concerne les containers de type "vecteur".
Code:
1 2 3 4 5 6 7 8 9 10
|
template <T>
template <typename U>
U* toPoint(const T<U>& v, int b, int e){
U* p = new U[e-b+1];
for(int i=0;i<e-b+1;i++){
p[i] = v[b+i];
}
return p;
} |
Le compilateur me dit que le 'T' has not been declared.
Comment dois-je procéder pour écrire des fonctions template pour des containers ?
le code suivant ne fonctionne pas non plus
Code:
1 2 3 4 5 6 7 8 9 10
|
template <typename T>
template <typename U>
U* toPointer(const T<U>& v, int b, int e){
U* p = new U[e-b+1];
for(int i=0;i<e-b+1;i++){
p[i] = v[b+i];
}
return p;
} |
J'ai des erreurs
'T' is not a Template
too many template parameter lists in declaration of `U* toPointer(const T&, int, int)'
ça ne fonctionne pas non plus
J'ai des erreurs:
expected `class' before "T"
expected constructor, destructor, or type conversion before '*' token
Et si j'écris
Code:
template< template<typename U> class T >
à la place j'ai:
expected constructor, destructor, or type conversion before '*' token