BWAPI
SPAR/AIModule/SparAIModule/Utils/FSM/Condition.h
Go to the documentation of this file.
00001 #pragma once
00002 #include <boost/tuple/tuple.hpp>
00003 
00008 class Condition
00009 {
00010   // bool evaluate()
00011 };
00012 
00016 class NoCondition : public Condition
00017 {
00018 public:
00019   bool evaluate() const { return true; }
00020 };
00021 
00025 template <class NegatedCondition>
00026 class Not : public Condition
00027 {
00028 public:
00029   Not(NegatedCondition condition)
00030     : m_condition(condition)
00031   {
00032   }
00033   //template <class Arguments>
00034   //bool evaluate(Arguments& args) 
00035   //{ 
00036   //  return !m_condition.evaluate(args);
00037   //}
00038   bool evaluate()
00039   {
00040     return !m_condition.evaluate();
00041   }
00042   template <class T1>
00043   bool evaluate(T1 t1)
00044   {
00045     return !m_condition.evaluate(t1);
00046   }
00047   template <class T1, class T2>
00048   bool evaluate(T1 t1, T2 t2)
00049   {
00050     return !m_condition.evaluate(t1, t2);
00051   }
00052   template <class T1, class T2, class T3>
00053   bool evaluate(T1 t1, T2 t2, T3 t3)
00054   {
00055     return !m_condition.evaluate(t1, t2, t3);
00056   }
00057   template <class T1, class T2, class T3, class T4>
00058   bool evaluate(T1 t1, T2 t2, T3 t3, T4 t4)
00059   {
00060     return !m_condition.evaluate(t1, t2, t3, t4);
00061   }
00062   template <class T1, class T2, class T3, class T4, class T5>
00063   bool evaluate(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5)
00064   {
00065     return !m_condition.evaluate(t1, t2, t3, t4, t5);
00066   }
00067 
00068 protected:
00069   NegatedCondition m_condition;
00070 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines