Salut, j'ai fait une fonction générique qui permet d'afficher une liste d'éléments de type T, le problème est que mon compilateur me donne l'erreur suivante:

[Linker error] undefined reference to `void afficheListe<int>(std::list<int, std::allocator<int> > const&)'

voici le code source de mon prog

main.cpp

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
using std::cout;
 
#include <list>
using std::list;
 
template <typename T> void afficheListe (const list<T>& li);
 
int main()
 
{
 
    list<int> li;
    list<int>::iterator q;
 
    q = li.begin();
    q = li.insert(q, 4);
    q = li.insert(q, 2);
    q = li.insert(q, 9);
    q = li.insert(q, 1);
 
    afficheListe(li);
 
}
fonc.cpp

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<list>
using std::list;
 
#include<iostream>
using std::cout;
 
template <typename T>
void afficheListe (const list<T>& li)
 
{
     typename list<T>::const_iterator p;
 
     for (p = li.begin(); p != li.end(); p++)
     {
         cout << "[";
         cout << *p;
         cout << "] ";
     }
}
Compilateur: devc++ (ça ne marche pas non plus avec Visual C++)

: