Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
support MPI_CXX types.
[simgrid.git] / include / smpi / smpi.h
index f3cdf0e..4544882 100644 (file)
@@ -165,10 +165,6 @@ enum ERROR_ENUM {
 #define MPI_NULL_DELETE_FN NULL
 #define MPI_ERR_LASTCODE 74
 
-#define MPI_CXX_BOOL MPI_DATATYPE_NULL
-#define MPI_CXX_FLOAT_COMPLEX MPI_DATATYPE_NULL
-#define MPI_CXX_DOUBLE_COMPLEX MPI_DATATYPE_NULL
-#define MPI_CXX_LONG_DOUBLE_COMPLEX MPI_DATATYPE_NULL
 #define MPI_REAL2 MPI_DATATYPE_NULL
 #define MPI_COMPLEX4 MPI_DATATYPE_NULL
 
@@ -308,6 +304,10 @@ extern SMPI_Datatype smpi_MPI_INTEGER4;
 extern SMPI_Datatype smpi_MPI_INTEGER8;
 extern SMPI_Datatype smpi_MPI_INTEGER16;
 extern SMPI_Datatype smpi_MPI_COUNT;
+extern SMPI_Datatype smpi_MPI_CXX_BOOL;
+extern SMPI_Datatype smpi_MPI_MPI_CXX_FLOAT_COMPLEX;
+extern SMPI_Datatype smpi_MPI_MPI_CXX_DOULE_COMPLEX;
+extern SMPI_Datatype smpi_MPI_MPI_CXX_LONG_DOUBLE_COMPLEX;
 
 #define MPI_DATATYPE_NULL SMPI_PREDEFINED_POINTER(MPI_Datatype, smpi_MPI_DATATYPE_NULL)
 #define MPI_CHAR SMPI_PREDEFINED_POINTER(MPI_Datatype, smpi_MPI_CHAR)
@@ -369,6 +369,18 @@ extern SMPI_Datatype smpi_MPI_COUNT;
 #define MPI_INTEGER16 SMPI_PREDEFINED_POINTER(MPI_Datatype, smpi_MPI_INTEGER16)
 #define MPI_COUNT SMPI_PREDEFINED_POINTER(MPI_Datatype, smpi_MPI_COUNT)
 
+#if defined(c_plusplus) || defined(__cplusplus)
+#define MPI_CXX_BOOL SMPI_PREDEFINED_POINTER(MPI_Datatype, smpi_MPI_CXX_BOOL)
+#define MPI_CXX_FLOAT_COMPLEX SMPI_PREDEFINED_POINTER(MPI_Datatype, smpi_MPI_CXX_FLOAT_COMPLEX)
+#define MPI_CXX_DOUBLE_COMPLEX SMPI_PREDEFINED_POINTER(MPI_Datatype, smpi_MPI_CXX_DOUBLE_COMPLEX)
+#define MPI_CXX_LONG_DOUBLE_COMPLEX SMPI_PREDEFINED_POINTER(MPI_Datatype, smpi_MPI_CXX_LONG_DOUBLE_COMPLEX)
+#else
+#define MPI_CXX_BOOL MPI_DATATYPE_NULL
+#define MPI_CXX_FLOAT_COMPLEX MPI_DATATYPE_NULL
+#define MPI_CXX_DOUBLE_COMPLEX MPI_DATATYPE_NULL
+#define MPI_CXX_LONG_DOUBLE_COMPLEX MPI_DATATYPE_NULL
+#endif
+
 //defines for fortran compatibility
 #if defined(__alpha__) || defined(__sparc64__) || defined(__x86_64__) || defined(__ia64__) || defined(__aarch64__)
 #define MPI_INTEGER MPI_INT