Nettoyer des std::queue en une fonction template
Bonjour,
j'ai lu que pour vider une std::queue on faisait :
Code:
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:
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.
Citation:
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 ? 8O
Merci...