Bonjour,
j'ai lu que pour vider une std::queue on faisait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
void clear(std::queue <void * > &q)
{
   std::queue< void * > empty;
   std::swap( q, empty );
}
Je voudrais rendre cette fonction template pour la faire fonctionner pour des void* mais aussi des objets de types que j'ai créé.
J'ai fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
template <typename T> 
	void clear(std::queue <T* > &q)
{
   std::queue< T* > empty;
   std::swap( q, empty );
}
Cependant cela ne compile même pas.

fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'msc1.cpp', line 1786)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
Error executing cl.exe.
Les template ne s'appliquent ils qu'aux classes ? Ne puis je pas faire ce que je souhaite? Ou y a t'il mieux pour nettoyer une std:queue contenant des objets homogènes quelconques ?

Merci...