62 unsigned int size = 0;
64 d[n].min = i.min(); d[n].max = i.max(); size += i.width();
68 IntSet::IntSetObject* o = IntSet::IntSetObject::allocate(n);
107 assert(
object() != NULL);
108 return static_cast<IntSetObject*
>(
object())->
r[i].
min;
113 assert(
object() != NULL);
114 return static_cast<IntSetObject*
>(
object())->
r[i].
max;
119 assert(
object() != NULL);
120 IntSetObject* o =
static_cast<IntSetObject*
>(
object());
121 return static_cast<unsigned int>(o->r[
i].max-o->r[
i].min)+1;
126 IntSetObject* o =
static_cast<IntSetObject*
>(
object());
127 return (o == NULL) ? 0 : o->n;
132 IntSetObject* o =
static_cast<IntSetObject*
>(
object());
133 if ((o == NULL) || (n < o->r[0].min) || (n > o->r[o->n-1].max))
141 IntSetObject* o =
static_cast<IntSetObject*
>(
object());
147 IntSetObject* o =
static_cast<IntSetObject*
>(
object());
153 IntSetObject* o =
static_cast<IntSetObject*
>(
object());
154 return (o == NULL) ? 0 : o->size;
159 return static_cast<unsigned int>(
max()-
min()+1);
175 i = &
static_cast<IntSet::IntSetObject*
>(s.
object())->
r[0]; e = i+n;
203 return static_cast<unsigned int>(i->max - i->min) + 1;
225 template<
class Char,
class Traits>
226 std::basic_ostream<Char,Traits>&
227 operator <<(std::basic_ostream<Char,Traits>& os,
const IntSet& is) {
228 std::basic_ostringstream<Char,Traits> s;
229 s.copyfmt(os); s.
width(0);
231 for (
int i = 0;
i < is.ranges(); ) {
237 s << min <<
".." <<
max;
243 return os << s.str();