Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
datatype.hpp File Reference

This header provides the mapping from C++ types to MPI data types. More...

#include <boost/mpi/config.hpp>
#include <boost/mpi/datatype_fwd.hpp>
#include <mpi.h>
#include <boost/config.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/mpl/or.hpp>
#include <boost/mpl/and.hpp>
#include <boost/mpi/detail/mpi_datatype_cache.hpp>
#include <boost/mpl/assert.hpp>
#include <boost/archive/basic_archive.hpp>
#include <boost/serialization/item_version_type.hpp>
#include <utility>
Include dependency graph for datatype.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  boost::mpi::is_mpi_integer_datatype< T >
 Type trait that determines if there exists a built-in integer MPI data type for a given C++ type. More...
 
struct  boost::mpi::is_mpi_floating_point_datatype< T >
 Type trait that determines if there exists a built-in floating point MPI data type for a given C++ type. More...
 
struct  boost::mpi::is_mpi_logical_datatype< T >
 Type trait that determines if there exists a built-in logical MPI data type for a given C++ type. More...
 
struct  boost::mpi::is_mpi_complex_datatype< T >
 Type trait that determines if there exists a built-in complex MPI data type for a given C++ type. More...
 
struct  boost::mpi::is_mpi_byte_datatype< T >
 Type trait that determines if there exists a built-in byte MPI data type for a given C++ type. More...
 
struct  boost::mpi::is_mpi_builtin_datatype< T >
 Type trait that determines if there exists a built-in MPI data type for a given C++ type. More...
 
struct  boost::mpi::is_mpi_datatype< T >
 Type trait that determines if a C++ type can be mapped to an MPI data type. More...
 
struct  boost::mpi::is_mpi_datatype< std::pair< T, U > >
 specialization of is_mpi_datatype for pairs More...
 
struct  boost::mpi::is_mpi_datatype< bool >
 INTERNAL ONLY. More...
 

Namespaces

 boost
 Duration formatting facet for input.
 
 boost::mpi
 
 boost::mpi::detail
 

Macros

#define BOOST_MPI_DATATYPE(CppType, MPIType, Kind)
 INTERNAL ONLY. More...
 
#define BOOST_MPI_LIST2(A, B)   A, B
 INTERNAL ONLY. More...
 
#define BOOST_IS_MPI_DATATYPE(T)
 

Functions

template<typename T >
MPI_Datatype boost::mpi::get_mpi_datatype (const T &x)
 Returns an MPI data type for a C++ type. More...
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< packed > (const packed &)
 INTERNAL ONLY. More...
 
template<>
struct boost::mpi::BOOST_JOIN (is_mpi_, BOOST_JOIN(builtin, _datatype))< packed >
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< char > (const char &)
 INTERNAL ONLY. More...
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< short > (const short &)
 INTERNAL ONLY. More...
 
template<>
struct boost::mpi::BOOST_JOIN (is_mpi_, BOOST_JOIN(integer, _datatype))< short >
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< int > (const int &)
 INTERNAL ONLY. More...
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< long > (const long &)
 INTERNAL ONLY. More...
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< float > (const float &)
 INTERNAL ONLY. More...
 
template<>
struct boost::mpi::BOOST_JOIN (is_mpi_, BOOST_JOIN(floating_point, _datatype))< float >
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< double > (const double &)
 INTERNAL ONLY. More...
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< long double > (const long double &)
 INTERNAL ONLY. More...
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< unsigned char > (const unsigned char &)
 INTERNAL ONLY. More...
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< unsigned short > (const unsigned short &)
 INTERNAL ONLY. More...
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< unsigned > (const unsigned &)
 INTERNAL ONLY. More...
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< unsigned long > (const unsigned long &)
 INTERNAL ONLY. More...
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< std::pair< float, int > > (const std::pair< float, int > &)
 INTERNAL ONLY. More...
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< std::pair< double, int > > (const std::pair< double, int > &)
 INTERNAL ONLY. More...
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< std::pair< long double, int > > (const std::pair< long double, int > &)
 INTERNAL ONLY. More...
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< std::pair< long, int > > (const std::pair< long, int > &)
 INTERNAL ONLY. More...
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< std::pair< short, int > > (const std::pair< short, int > &)
 INTERNAL ONLY. More...
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< std::pair< int, int > > (const std::pair< int, int > &)
 INTERNAL ONLY. More...
 
MPI_Datatype boost::mpi::detail::build_mpi_datatype_for_bool ()
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< bool > (const bool &)
 Support for bool. More...
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< boost::archive::library_version_type > (const boost::archive::library_version_type &)
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< boost::archive::version_type > (const boost::archive::version_type &)
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< boost::archive::class_id_type > (const boost::archive::class_id_type &)
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< boost::archive::class_id_reference_type > (const boost::archive::class_id_reference_type &)
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< boost::archive::class_id_optional_type > (const boost::archive::class_id_optional_type &)
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< boost::archive::object_id_type > (const boost::archive::object_id_type &)
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< boost::archive::object_reference_type > (const boost::archive::object_reference_type &)
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< boost::archive::tracking_type > (const boost::archive::tracking_type &)
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< boost::serialization::collection_size_type > (const boost::serialization::collection_size_type &)
 
template<>
MPI_Datatype boost::mpi::get_mpi_datatype< boost::serialization::item_version_type > (const boost::serialization::item_version_type &)
 

Detailed Description

This header provides the mapping from C++ types to MPI data types.

Macro Definition Documentation

#define BOOST_IS_MPI_DATATYPE (   T)
Value:
namespace boost { \
namespace mpi { \
template<> \
struct is_mpi_datatype< T > : mpl::true_ {}; \
}} \
bool_< true > true_
Definition: bool_fwd.hpp:21
Duration formatting facet for input.
Definition: accumulators_fwd.hpp:55
#define BOOST_MPI_DATATYPE (   CppType,
  MPIType,
  Kind 
)
Value:
template<> \
inline MPI_Datatype \
get_mpi_datatype< CppType >(const CppType&) { return MPIType; } \
\
template<> \
struct BOOST_JOIN(is_mpi_,BOOST_JOIN(Kind,_datatype))< CppType > \
: boost::mpl::bool_<true> \
{}
#define BOOST_JOIN(X, Y)
Definition: suffix.hpp:544

INTERNAL ONLY.

#define BOOST_MPI_LIST2 (   A,
 
)    A, B

INTERNAL ONLY.