les functors ou function objet en c++
salut à tous,
est ce que quelqu'un pourrait m'aider svp ?
en ce qui concerne les functors ou bien les functions objets.
j'ai la classe functor suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| template <class EOT>
class eoWeakElitistReplacement : public eoReplacement<EOT>
{
public :
typedef typename EOT::Fitness Fitness;
// Ctor, takes an eoReplacement
eoWeakElitistReplacement(eoReplacement<EOT> & _replace) :
replace(_replace) {}
/// do replacement
void operator()(eoPop<EOT>& _pop, eoPop<EOT>& _offspring)
{
const EOT oldChamp = _pop.best_element();
replace(_pop, _offspring); // "normal" replacement, parents are the new
if (_pop.best_element() < oldChamp) // need to do something
{
typename eoPop<EOT>::iterator itPoorGuy = _pop.it_worse_element();
(*itPoorGuy) = oldChamp;
}
}
private:
eoReplacement<EOT> & replace;
}; |
je voudrais utiliser ce functor est ce que ce code est correcte:
Code:
1 2 3 4 5
| eoReplacement <Indi>& _repl;
eoWeakElitistReplacement <Indi>(_repl);// instanciation
eoPop<Indi>& _pop1;
eoPop<Indi>& _pop2;
eoWeakElitistReplacement (pop1,pop2); // pour utiliser la function operator |
Merci pour votre aide.