00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef THEPEG_MaxCmp_H
00010 #define THEPEG_MaxCmp_H
00011
00012
00013
00014
00015 namespace ThePEG {
00016
00025 template <typename T>
00026 class MaxCmp {
00027
00028 public:
00029
00033 MaxCmp() : init(false), max(T()) {}
00034
00038 MaxCmp(const T & t) : init(true), max(t) {}
00039
00040 public:
00041
00046 bool operator()(const T & t)
00047 {
00048 if ( !init || t > max ) {
00049 max = t;
00050 init = true;
00051 return true;
00052 }
00053 return false;
00054 }
00055
00059 operator const T & () const { return max; }
00060
00061 private:
00062
00066 bool init;
00067
00071 T max;
00072
00073 };
00074
00075 }
00076
00077 #endif