ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
          
        
        
          
            141
          
        
        
          // Тип: MPI::Delete_function
        
        
          MPI::NULL_DELETE_FN
        
        
          
            Определение типов
          
        
        
          Следующее есть типы С++ , также включенные в файл mpi.h.
        
        
          // Typedef
        
        
          MPI::Aint
        
        
          Далее в этом приложении используется обозначение пространства имен,
        
        
          поскольку все функции из списка ниже имеют прототипы. Эта нотация не использо-
        
        
          валась раньше, поскольку списки констант и типов выше не являются фактическими
        
        
          декларациями.
        
        
          // прототипы для определенных пользователем функций
        
        
          namespace MPI {
        
        
          typedef void User_function(const void *invec, void* inoutvec,
        
        
          int len, const Datatype& datatype);
        
        
          };
        
        
          
            Привязки для парных обменов в языке С++
          
        
        
          Кроме специально отмеченных случаев, все нестатические функции в этом
        
        
          приложении виртуальные. Для краткости ключевое слово virtual пропущено.
        
        
          namespace MPI{
        
        
          void Comm::Send(const void* buf, int count,
        
        
          const Datatype& datatype, int dest, int tag) const
        
        
          void Comm::Recv(void* buf, int count, const Datatype& datatype,
        
        
          int source, int tag, Status& status) const
        
        
          void Comm::Recv(void* buf, int count, const Datatype& datatype,
        
        
          int source, int tag) const
        
        
          int Status::Get_count(const Datatype& datatype) const
        
        
          void Comm::Bsend(const void* buf, int count, const Datatype& da-
        
        
          tatype,
        
        
          int dest, int tag) const
        
        
          void Comm::Ssend(const void* buf, int count, const Datatype& da-
        
        
          tatype,
        
        
          int dest, int tag) const
        
        
          void Comm::Rsend(const void* buf, int count, const Datatype& da-
        
        
          tatype,
        
        
          int dest, int tag) const