Provided by: librheolef-dev_6.6-1build2_amd64 bug


       index_set - a set of indexes (rheolef-6.6)


       A  class  for:  l  =  {1,3,...9}  i.e.  a wrapper for STL set<size_t> with some assignment
       operators, such as l1 += l2.  This class is suitable for use with the array<T>  class,  as
       array<index_set> (see array(2)).


       class index_set : public std::set<std::size_t> {

       // typedefs:

         typedef std::set<std::size_t>    base;
         typedef std::size_t              value_type;
         typedef std::size_t              size_type;

       // allocators:

         index_set ();
         index_set (const index_set& x);
         index_set& operator= (const index_set& x);
         template <int N>
         index_set& operator= (size_type x[N]);
         void clear ();

       // basic algebra:

         void       insert     (size_type dis_i);    // a := a union {dis_i}
         index_set& operator+= (size_type dis_i);    // idem
         index_set& operator+= (const index_set& b); // a := a union b

         // a := a union b
         void inplace_union        (const index_set& b);
         void inplace_intersection (const index_set& b);

         // c := a union b
         friend void set_union        (const index_set& a, const index_set& b, index_set& c);
         friend void set_intersection (const index_set& a, const index_set& b, index_set& c);

       // io:

         friend std::istream& operator>> (std::istream& is, index_set& x);
         friend std::ostream& operator<< (std::ostream& os, const index_set& x);

       // boost mpi:

         template <class Archive>
         void serialize (Archive& ar, const unsigned int version);