This repository has been archived on 2026-03-28. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
eodev/eo/src/eoEvalFunc.h
gustavo 3fe0218a72
1999-01-29 12:23:55 +00:00

34 lines
No EOL
1.1 KiB
C++

// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
//-----------------------------------------------------------------------------
// eoEvalFunc.h
// (c) GeNeura Team, 1998
//-----------------------------------------------------------------------------
#ifndef eoEvalFunc_H
#define eoEvalFunc_H
/** Evaluate: takes one EO and sets its "fitness" property
* returning this fitness also. That is why EOT is passed by
* non-const reference: it must be altered within evaluate.\\
The requirements on the types with which this class is to be
instantiated with are null, or else, they depend on the particular
class it's going to be applied to; EO does not impose any requirement
on it. If you subclass this abstract class, and use it to evaluate an
EO, the requirements on this EO will depend on the evaluator.
*/
template< class EOT >
struct eoEvalFunc {
#ifdef _MSC_VER
typedef EOT::Fitness EOFitT;
#else
typedef typename Fitness::EOFitT EOFitT;
#endif
/// Effectively applies the evaluation function to an EO or urEO
virtual EOFitT evaluate( EOT & _eo ) const = 0;
};
#endif