Listing 5: Selection component using order_by objects
//person_sel.h
#ifndef __PERSON_SEL_H__
#define __PERSON_SEL_H__
#include <person.h>
#include <order_by.h>
template <typename CONT>
bool person_sel(CONT &container, int sort_order)
{
switch(sort_order)
{
case 1://last only
{
order_by<CONT, TYPELIST_1(less_last)>
o(container.begin(), container.end());
}
break;
case 2://last, first, id
{
order_by<CONT, TYPELIST_3(less_last,
less_first,
less_id)>
o(container.begin(), container.end());
}
break;
case 3://state,zip,last,first,id
{
order_by<CONT, TYPELIST_5(less_state,
less_zip,
less_last,
less_first,
less_id)>
o(container.begin(), container.end());
}
break;
default:
return false;
}
return true;
}
#endif