1 // Copyright (C) 2006 Douglas Gregor <doug.gregor -at- gmail.com>. 2 3 // Use, modification and distribution is subject to the Boost Software 4 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 // http://www.boost.org/LICENSE_1_0.txt) 6 7 /** @file datatype_fwd.hpp 8 * 9 * This header provides forward declarations for the contents of the 10 * header @c datatype.hpp. It is expected to be used primarily by 11 * user-defined C++ classes that need to specialize @c 12 * is_mpi_datatype. 13 */ 14 #ifndef BOOST_MPI_DATATYPE_FWD_HPP 15 #define BOOST_MPI_DATATYPE_FWD_HPP 16 17 #include <boost/mpi/config.hpp> 18 19 namespace boost { namespace mpi { 20 21 template<typename T> struct is_mpi_builtin_datatype; 22 template<typename T> struct is_mpi_integer_datatype; 23 template<typename T> struct is_mpi_floating_point_datatype; 24 template<typename T> struct is_mpi_logical_datatype; 25 template<typename T> struct is_mpi_complex_datatype; 26 template<typename T> struct is_mpi_byte_datatype; 27 template<typename T> struct is_mpi_datatype; 28 template<typename T> MPI_Datatype get_mpi_datatype(const T& x); get_mpi_datatype()29template<typename T> MPI_Datatype get_mpi_datatype() 30 { return get_mpi_datatype(T());} 31 32 /// a dummy data type giving MPI_PACKED as its MPI_Datatype 33 struct packed {}; 34 } } // end namespace boost::mpi 35 36 #endif // BOOST_MPI_MPI_DATATYPE_FWD_HPP 37