00001 #ifndef EVAL_CONCEPT_H
00002 #define EVAL_CONCEPT_H
00003
00004 #include "osl/player.h"
00005 #include <boost/concept_check.hpp>
00006
00007 namespace osl
00008 {
00009 namespace eval
00010 {
00014 class EvaluationFunction
00015 {
00016 public:
00017 int getVal() const;
00018 };
00019
00024 template <class T>
00025 struct Concept
00026 {
00031 void constraints()
00032 {
00033 const int value = eval.value();
00034 boost::ignore_unused_variable_warning(value);
00035 const int infty = T::infty();
00036 boost::ignore_unused_variable_warning(infty);
00037 const int capture_val = T::captureValue(ptypeo);
00038 boost::ignore_unused_variable_warning(capture_val);
00039 }
00040 T eval;
00041 PtypeO ptypeo;
00042 };
00043 }
00044 }
00045
00046
00047 #endif
00048
00049
00050
00051