The C++ language interface for MPI is designed according to the following criteria:
2. The MPI C++ language bindings provide a semantically correct interface to MPI.
3. To the greatest extent possible, the C++ bindings for MPI functions are member functions of MPI classes.
Providing a lightweight set of MPI objects that correspond to the
basic MPI types is the best fit to MPI's implicit object-based
design; methods can be supplied for these objects to realize MPI
functionality. The existing C bindings can be used in C++ programs,
but much of the expressive power of the C++ language is forfeited.
On the other hand, while a comprehensive class library would make
user programming more elegant, such a library it is not suitable as
a language binding for MPI since a binding must provide a direct
and unambiguous mapping to the specified functionality of MPI.
( End of rationale.)