Bertini 2 d882924 (2026-10-06 19:56 UTC)
Numerical algebraic geometry library (C++ core)
Loading...
Searching...
No Matches
mpi_include.hpp File Reference

Single include point for the MPI C API. More...

#include <mpi.h>
Include dependency graph for mpi_include.hpp:

Go to the source code of this file.

Macros

#define MPICH_SKIP_MPICXX
#define OMPI_SKIP_MPICXX

Detailed Description

Single include point for the MPI C API.

Bertini 2 uses only the MPI C API. Including <mpi.h> directly from C++ otherwise drags in the deprecated MPI C++ bindings (the MPI:: namespace, mpicxx.h). MPICH compiles those in by default, and they fail to build under modern C++ (notably clang) – so the project built against OpenMPI but not Homebrew MPICH on macOS.

Defining MPICH_SKIP_MPICXX / OMPI_SKIP_MPICXX before <mpi.h> pulls in only the C API. These are also defined on the compile command line by CMake (ENABLE_MPI block); having them here too is belt and suspenders, so the guard holds even if the build-system definition fails to reach a translation unit. Always include this header instead of <mpi.h> directly.

Macro Definition Documentation

◆ MPICH_SKIP_MPICXX

#define MPICH_SKIP_MPICXX

◆ OMPI_SKIP_MPICXX

#define OMPI_SKIP_MPICXX