## 10.1.3. C++ Classes for MPI

Up: C++ Next: Class Member Functions for MPI Previous: Design

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-1 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-2:

    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.

Up: C++ Next: Class Member Functions for MPI Previous: Design

Return to MPI-2 Standard Index
Return to MPI 1.1 Standard Index
Return to MPI Forum Home Page

MPI-2.0 of July 18, 1997
HTML Generated on September 10, 2001