Listing 5: A complete example.

COLUMN(ssn, long);
COLUMN(name, std::string);
COLUMN(year, int);
typedef
  list<ssn,
  list<name,
  list<year> > > fields;
typedef tuple<fields> tuple_type;
table<tuple_type> staff;
template <class C> class less_equal
{
public:
  less_equal(typename C::const_reference x) : x_(x) {}
  template <class Tuple>
    bool operator()(const Tuple& tp) const
  {
    return FIELD(tp, C) <= x_;
  }
private:
  typename C::const_reference x_;
};
 ...
print(selection(staff, less_equal<year>(1965)));