Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards


Struct template is_mpi_builtin_datatype

boost::mpi::is_mpi_builtin_datatype — Type trait that determines if there exists a built-in MPI data type for a given C++ type.


// In header: <boost/mpi/datatype.hpp>

template<typename T> 
struct is_mpi_builtin_datatype : public boost::mpl::or_< is_mpi_integer_datatype< T >, is_mpi_floating_point_datatype< T >, is_mpi_logical_datatype< T >, is_mpi_complex_datatype< T >, is_mpi_byte_datatype< T > >


This type trait determines when there is a direct mapping from a C++ type to an MPI type. For instance, the C++ int type maps directly to the MPI type MPI_INT. When there is a direct mapping from the type T to an MPI type, is_mpi_builtin_datatype will derive from mpl::true_ and the MPI data type will be accessible via get_mpi_datatype.

In general, users should not need to specialize this trait. However, if you have an additional C++ type that can map directly to only of MPI's built-in types, specialize either this trait or one of the traits corresponding to categories of MPI data types (is_mpi_integer_datatype, is_mpi_floating_point_datatype, is_mpi_logical_datatype, is_mpi_complex_datatype, or is_mpi_builtin_datatype). is_mpi_builtin_datatype derives mpl::true_ if any of the traits corresponding to MPI data type categories derived mpl::true_.