template <typename Object, typename Sequence> // set union
class UnionMerger : public Merger<Object, Sequence> {
protected:
virtual void aIsLess(const Object& a, Sequence& C)
{ C.insertLast(a); } // add a
virtual void bothEqual(const Object& a, const Object& b, Sequence& C)
{ C.insertLast(a); } // add a only
virtual void bIsLess(const Object& b, Sequence& C)
{ C.insertLast(b); } // add b
public:
UnionMerger() { }
};