10.1.3 C++ Classes for MPI-/

All MPI-/ classes, constants, and functions are declared within the scope of an MPI namespace. Thus, instead of the MPI_ prefix that is used in C and Fortran, MPI-/ functions essentially have an MPI:: prefix.

Advice to implementors. Although namespace is officially part of the draft ANSI C++ standard, as of this writing it not yet widely implemented in C++ compilers. Implementations using compilers without namespace may obtain the same scoping through the use of a non-instantiable MPI class. (To make the MPI class non-instantiable, all constructors must be private.)(End of advice to implementors.)

The members of the MPI namespace are those classes corresponding to objects implicitly used by MPI-/. An abbreviated definition of the MPI namespace for MPI-/ and its member classes is as follows:

namespace MPI {
  class Comm                             {...};
  class Intracomm : public Comm          {...};
  class Graphcomm : public Intracomm     {...};
  class Cartcomm  : public Intracomm     {...};
  class Intercomm : public Comm          {...};
  class Datatype                         {...};
  class Errhandler                       {...};
  class Exception                        {...};
  class Group                            {...};
  class Op                               {...};
  class Request                          {...};
  class Prequest  : public Request       {...};
  class Status                           {...};
};

Additionally, the following classes defined for MPI-//:

namespace MPI {
  class File                             {...};
  class Grequest  : public Request       {...};
  class Info                             {...};
  class Win                              {...};
};

Note that there are a small number of derived classes, and that virtual inheritance is not used.

MPI-Standard for MARMOT