| 367 | } |
| 368 | |
| 369 | template<class I> bool |
| 370 | LUBndSet::intersectI(Space& home, I& i) { |
| 371 | if (fst()==nullptr) { return false; } |
| 372 | if (!i()) { |
| 373 | fst()->dispose(home,lst()); fst(nullptr); lst(nullptr); |
| 374 | _size=0; |
| 375 | return true; |
| 376 | } |
| 377 | BndSetRanges j(*this); |
| 378 | Iter::Ranges::Inter<BndSetRanges,I> ij(j,i); |
| 379 | bool ret = overwrite(home, ij); |
| 380 | assert(isConsistent()); |
| 381 | return ret; |
| 382 | } |
| 383 | |
| 384 | template<class I> bool |
| 385 | LUBndSet::excludeI(Space& home, I& i) { |