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)));