Bonjour,
j'ai lu que pour vider une std::queue on faisait :
Je voudrais rendre cette fonction template pour la faire fonctionner pour des void* mais aussi des objets de types que j'ai créé.
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 ); }
J'ai fait :
Cependant cela ne compile même pas.
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 ); }
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 ?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.
Merci...
Partager