00001 #ifndef FASTSHOWER_IFN2_H 00002 #define FASTSHOWER_IFN2_H 00003 00004 #ifndef FASTSHOWER_IDEBUG_H 00005 #include "FastShowerUtils/IDebug.h" 00006 #endif 00007 00008 namespace FastShower{ 00015 template<class F1, class F2> 00016 class IFn2: virtual public IDebug{ 00017 public: 00018 typedef F1::ArgType ArgType1; 00019 typedef F2::ArgType ArgType2; 00020 virtual ~IFn2(); 00021 virtual double value(const ArgType1&, const ArgType2&) const = 0; 00022 virtual IFn2<F1, F2>* clone() const = 0; 00023 }; 00024 } 00025 #endif 00026 00027