#define COND_LT 0x00 #define COND_LE 0x01 #define COND_EQ 0x02 #define COND_GE 0x03 #define COND_GT 0x04 #define COND_NE 0x05 #define COND_BEGINS 0x06 class Condition { int tupleindex; int cond; const void *value; }; class ConditionSet { public: ConditionSet(); virtual ~ConditionSet(); int count() const { return conditions; } const Condition& operator[](int i) const { return cond[i]; } Condition& operator[](int i) { return cond[i]; } Condition& operator[](int i) const { return cond[i]; } void operator +=(const Condition &c); private: ConditionSet(const ConditionSet&); //don't copy ConditionSet& operator=(const ConditionSet&); //don't copy Condition *cond; int conditions; }; void operator +=(const Condition &c) { Condition *new_cond = new Condition[conditions+1]; int i; while(i