Совет разработчикам: Так как директива namespace официально является частью чернового стандарта ANSI С++, на момент написания она еще недостаточно широко реализована в компиляторах С++. Реализации компиляторов без namespace могут получить такую же область видимости используя класс MPI, для которого нельзя создать экземпляр объекта. (Чтобы придать классу MPI такое свойство, все конструкторы должны быть объявлены как private).[]
Члены поля имен MPI это те классы, которые соответствуют объектам, явно
используемым в MPI. Укороченное определение поля имен MPI
для MPI-1 и его классов см. ниже:
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 {...};
};
Кроме того, для MPI-2 определены следующие классы:
namespace MPI {
class File {...};
class Grequest : public Request {...};
class Info {...};
class Win {...};
};
Заметьте, здесь мало порожденных классов и виртуальное наследование тут не
используется.