1 #ifndef _RHEOLEF_INDEX_SET_HEADER_ICC
2 #define _RHEOLEF_INDEX_SET_HEADER_ICC
63 typedef std::set<std::size_t>
base;
97 #ifdef _RHEOLEF_INDEX_SET_H
98 #ifdef _RHEOLEF_HAVE_MPI
99 template <
class Archive>
110 T&
operator()(
T& x,
const typename T::value_type& y)
const {
return x += y; }
112 #ifdef _RHEOLEF_INDEX_SET_H
122 #ifdef _RHEOLEF_HAVE_MPI
123 template <>
struct is_container_of_mpi_datatype<
index_set> : std::true_type {
136 #pragma GCC diagnostic push
137 #pragma GCC diagnostic ignored "-Weffc++"
143 for (
size_t* iter = &(x[0]), *last = &(x[0])+
N; iter != last; iter++) {
144 base::insert (*iter);
148 #pragma GCC diagnostic pop
160 base::insert (dis_i);
166 base::insert (dis_i);
169 #ifdef _RHEOLEF_INDEX_SET_H
170 #ifdef _RHEOLEF_HAVE_MPI
171 template <
class Archive>
175 ar & boost::serialization::base_object<base>(*
this);
std::set< std::size_t > base
void inplace_intersection(const index_set &b)
void serialize(Archive &ar, const unsigned int version)
void inplace_union(const index_set &b)
void insert(size_type dis_i)
index_set & operator=(const index_set &x)
friend std::ostream & operator<<(std::ostream &os, const index_set &x)
friend void set_intersection(const index_set &a, const index_set &b, index_set &c)
friend std::istream & operator>>(std::istream &is, index_set &x)
friend void set_union(const index_set &a, const index_set &b, index_set &c)
index_set & operator+=(size_type dis_i)
This file is part of Rheolef.
index_set_add_op< index_set > type
T & operator()(T &x, const typename T::value_type &y) const
T & operator()(T &x, const T &y) const