// general template
template <class T> struct range {
typedef T rangeT;
static rangeT min();
static rangeT max();
};
// specialization for int
struct range<int> {
typedef int rangeT;
static rangeT min()
{
return numeric_limits<int>::min();
}
static rangeT max()
{
return numeric_limits<int>::max();
}
};
// specialization for const char *
struct range<const char *> {
typedef const char *rangeT;
static rangeT min() { return ""; }
static rangeT max() { return "zzzzzz"; }
};
// End of File