public:
File(MPI_Comm comm, const char *filename, int amode, MPI_Info info);
File(const File&) = delete;
public:
File(MPI_Comm comm, const char *filename, int amode, MPI_Info info);
File(const File&) = delete;
template <int (*T)(MPI_File, void *, int, MPI_Datatype, MPI_Status *)> int op_all(void *buf, int count,MPI_Datatype datatype, MPI_Status *status);
static int close(MPI_File *fh);
static int del(const char *filename, MPI_Info info);
template <int (*T)(MPI_File, void *, int, MPI_Datatype, MPI_Status *)> int op_all(void *buf, int count,MPI_Datatype datatype, MPI_Status *status);
static int close(MPI_File *fh);
static int del(const char *filename, MPI_Info info);