Struct template is_mpi_datatype
boost::mpi::is_mpi_datatype — Type trait that determines if a C++ type can be mapped to an MPI data type.
Synopsis
template<typename T>
struct is_mpi_datatype : public boost::mpi::is_mpi_builtin_datatype< T > {
};
Description
Этот тип определяет, можно ли построить тип данных MPI, который представляет тип данных C++. В этом случае<is_mpi_datatype
>выводит<mpl::true_
>, и тип данных MPI будет доступен через<get_mpi_datatype
>.
Для любого типа C++, который отображается на встроенный тип данных MPI (см.<is_mpi_builtin_datatype
>),<is_mpi_data_type
>тривиально верно. Однако любой тип POD («Plain Old Data»), содержащий типы, которые сами могут быть представлены типами данных MPI, сам может быть представлен как тип данных MPI. Например, класс<point3d
>, содержащий три<double
>значения, может быть представлен как тип данных MPI. Для этого сначала сделайте тип данных Сериализируемым (используя библиотеку Boost.Serialization); затем, специализируйте<is_mpi_datatype
>черту для типа точки, чтобы он выводил<mpl::true_:
>
namespace boost { namespace mpi {
template<> struct is_mpi_datatype<point>
: public mpl::true_ { };
} }