Bonjour,

j'utilise std::mem_fun pour appeler des fonctions membres de classes dans un std::for_each :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
	// Sort the collections of warning inst
	std::for_each(	m_WarningDescriptorColl.begin(), 
						m_WarningDescriptorColl.end(), 
						std::mem_fun<int, WarningDescriptor>(&WarningDescriptor::sortWarningInst) );
si par malheur, la fonction appelée WarningDescriptor::sortWarningInst() renvoit un void à la place d'un int, ça ne compile pas, j'ai l'erreur :
Compiling...
WarningCollectionImpl.cpp
c:\program files\microsoft visual studio\vc98\include\functional(233) : error C2562: '()' : 'void' function returning a value
c:\program files\microsoft visual studio\vc98\include\functional(232) : see declaration of '()'
c:\program files\microsoft visual studio\vc98\include\functional(233) : while compiling class-template member function 'void __thiscall std::mem_fun_t<void,class WarningDescriptor>::operator ()(class WarningDescriptor *) const'
WarningDescriptor.cpp
D:\outils\c'est moi qui l'ai fait\WarningAnalyze\project\sources\WarningAnalyze\Model\WarningDescriptor.cpp(108) : error C2562: 'sortWarningInst' : 'void' function returning a value
d:\outils\c'est moi qui l'ai fait\warninganalyze\project\sources\warninganalyze\model\warningdescriptor.h(40) : see declaration of 'sortWarningInst'
J'utilise Visual C++ 6.0.