Я пытаюсь перевести важные части mpMP.h OpenMPI на язык программирования D, чтобы я мог вызывать его из D. (HTOD не работал вообще.) Я не могу обернуться вокруг следующегобиты кода:
typedef struct ompi_communicator_t *MPI_Comm;
OMPI_DECLSPEC extern struct ompi_communicator_t ompi_mpi_comm_world;
OMPI_DECLSPEC extern struct ompi_communicator_t ompi_mpi_comm_self;
OMPI_DECLSPEC extern struct ompi_communicator_t ompi_mpi_comm_null;
Проблема в том, что ompi_communicator_t
никогда не определяется в mpi.h, а mpi.h не содержит никаких других файлов, кроме stddef.h, который явно не содержитопределение.(Комментарий гласит, что он включен для ptrdiff_t
.) Это только четыре строки в mpi.h, которые содержат строку ompi_communicator_t
.Откуда происходит определение этой структуры?Есть ли какие-то хитрости, о которых я должен знать, где типы могут появляться из воздуха?(Есть несколько других подобных структур, но это первая, на которую я наткнулся.)