constexpr unsigned DT_FLAG_NO_GAPS = 0x0080; /**< no gaps around the datatype */
constexpr unsigned DT_FLAG_DATA = 0x0100; /**< data or control structure */
constexpr unsigned DT_FLAG_ONE_SIDED = 0x0200; /**< datatype can be used for one sided operations */
-constexpr unsigned DT_FLAG_UNAVAILABLE = 0x0400; /**< datatypes unavailable on the build (OS or compiler dependant) */
+constexpr unsigned DT_FLAG_UNAVAILABLE = 0x0400; /**< datatypes unavailable on the build (OS or compiler dependent) */
constexpr unsigned DT_FLAG_DERIVED = 0x0800; /**< is the datatype derived ? */
/*
* We should make the difference here between the predefined contiguous and non contiguous
int number_of_integers, const int* integers,
int number_of_addresses, const MPI_Aint* addresses,
int number_of_datatypes, const MPI_Datatype* datatypes);
+ Datatype_contents(const Datatype_contents&) = delete;
+ Datatype_contents& operator=(const Datatype_contents&) = delete;
~Datatype_contents();
};
void ref();
static void unref(MPI_Datatype datatype);
void commit();
+ int copy_attrs(Datatype* datatype);
bool is_valid();
bool is_basic();
static const char* encode(const Datatype* dt) { return dt->id.c_str(); }
void set_name(const char* name);
static int copy(const void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int recvcount,
MPI_Datatype recvtype);
+ virtual int clone(MPI_Datatype* type);
virtual void serialize(const void* noncontiguous, void* contiguous, int count);
virtual void unserialize(const void* contiguous, void* noncontiguous, int count, MPI_Op op);
static int keyval_create(MPI_Type_copy_attr_function* copy_fn, MPI_Type_delete_attr_function* delete_fn, int* keyval,