如何以 typedef 方式重新定义 MPI_FLOAT、MPI_DOUBLE

How can you redefine MPI_FLOAT, MPI_DOUBLE in a typedef way

我想按以下方式做 typedef MPI_FLOAT/MPI_DOUBLE

#ifdef DOUBLE_PRECISION
     typedef MPI_DOUBLE MPI_REAL_MYOWN;
#else 
     typedef MPI_FLOAT MPI_REAL_MYOWN;
#endif

我正在使用 mpich 的包装器 mpicxx。我的想法是,我现在可以在我的 MPI API 中使用 MPI_REAL_MYOWN,而不必担心我是以双精度还是单精度编译的。 编译时出现错误提示

error: expected ')'
  typedef MPI_FLOAT MPI_REAL_MYOWN;

MPI_FLOATMPI_DOUBLEvalues of type MPI_Datatype。如果您愿意,只需创建该类型的变量即可。

#ifdef DOUBLE_PRECISION
const MPI_Datatype MPI_REAL_MYOWN = MPI_DOUBLE;
#else 
const MPI_Datatype MPI_REAL_MYOWN = MPI_FLOAT;
#endif