diff options
Diffstat (limited to 'Carpet/CarpetLib/src/bboxset.cc')
-rw-r--r-- | Carpet/CarpetLib/src/bboxset.cc | 51 |
1 files changed, 47 insertions, 4 deletions
diff --git a/Carpet/CarpetLib/src/bboxset.cc b/Carpet/CarpetLib/src/bboxset.cc index eceb264d8..a5748a7c6 100644 --- a/Carpet/CarpetLib/src/bboxset.cc +++ b/Carpet/CarpetLib/src/bboxset.cc @@ -51,6 +51,11 @@ bboxset<T,D>::bboxset (const vector<list<box> >& vlb) { normalize(); } +template<class T, int D> +bboxset<T,D> bboxset<T,D>::poison () { + return bboxset (bbox<T,D>::poison()); +} + // Invariant @@ -455,16 +460,54 @@ bool bboxset<T,D>::operator!= (const bboxset<T,D>& s) const { +// Input +template<class T,int D> +istream& bboxset<T,D>::input (istream& is) { + T Tdummy; + try { + skipws (is); + consume (is, "bboxset<"); + consume (is, typestring(Tdummy)); + consume (is, ","); + int D_; + is >> D_; + if (D_ != D) { + cout << "Input error: Wrong bboxset dimension " << D_ << ", expected " << D << endl; + throw input_error(); + } + consume (is, ">:{"); + consume (is, "size="); + size_type size_; + is >> size_; + consume (is, ","); + consume (is, "setsize="); + int setsize_; + is >> setsize_; + consume (is, ","); + consume (is, "set="); + is >> bs; + consume (is, "}"); + } catch (input_error & err) { + cout << "Input error while reading a bboxset<" << typestring(Tdummy) << "," << D << ">" << endl; + throw err; + } + return is; +} + + + // Output template<class T,int D> -void bboxset<T,D>::output (ostream& os) const { +ostream& bboxset<T,D>::output (ostream& os) const { T Tdummy; - os << "bboxset<" << typestring(Tdummy) << "," << D << ">:" + os << "bboxset<" << typestring(Tdummy) << "," << D << ">:{" << "size=" << size() << "," << "setsize=" << setsize() << "," - << "set=" << bs; + << "set=" << bs + << "}"; + return os; } -template class bboxset<int,3>; +template class bboxset<int,dim>; |