#ifndef HPC_MPI_VECTOR_H #define HPC_MPI_VECTOR_H 1 #include #include #include #include namespace hpc { namespace mpi { template typename std::enable_if::value, MPI_Datatype>::type get_type(const Vector& vector) { using ElementType = typename Vector::ElementType; MPI_Datatype datatype; MPI_Type_vector( /* count = */ vector.length, /* blocklength = */ 1, /* stride = */ vector.inc, /* element type = */ get_type(vector(0)), /* newly created type = */ &datatype); MPI_Type_commit(&datatype); return datatype; } } } // namespaces mpi, hpc #endif // HPC_MPI_VECTOR_H