63 unsigned int size = 0;
65 d[
n].min = i.min(); d[
n].max = i.max(); size += i.width();
69 IntSet::IntSetObject* o = IntSet::IntSetObject::allocate(n);
116 assert(
object() != NULL);
117 return static_cast<IntSetObject*
>(
object())->
r[i].
min;
122 assert(
object() != NULL);
123 return static_cast<IntSetObject*
>(
object())->
r[i].
max;
128 assert(
object() != NULL);
129 IntSetObject* o =
static_cast<IntSetObject*
>(
object());
130 return static_cast<unsigned int>(o->r[
i].max-o->r[
i].min)+1;
135 IntSetObject* o =
static_cast<IntSetObject*
>(
object());
136 return (o == NULL) ? 0 : o->n;
141 IntSetObject* o =
static_cast<IntSetObject*
>(
object());
142 if ((o == NULL) || (n < o->r[0].min) || (n > o->r[o->n-1].max))
150 IntSetObject* o =
static_cast<IntSetObject*
>(
object());
156 IntSetObject* o =
static_cast<IntSetObject*
>(
object());
162 IntSetObject* o =
static_cast<IntSetObject*
>(
object());
163 return (o == NULL) ? 0 : o->size;
168 return static_cast<unsigned int>(
max()-
min()+1);
184 i = &
static_cast<IntSet::IntSetObject*
>(s.
object())->
r[0]; e = i+
n;
212 return static_cast<unsigned int>(i->max - i->min) + 1;
234 template<
class Char,
class Traits>
235 std::basic_ostream<Char,Traits>&
236 operator <<(std::basic_ostream<Char,Traits>& os,
const IntSet& is) {
237 std::basic_ostringstream<Char,Traits> s;
238 s.copyfmt(os); s.
width(0);
240 for (
int i = 0;
i < is.ranges(); ) {
246 s << min <<
".." <<
max;
252 return os << s.str();