/usr/include/boost/property_map/parallel/detail
Edit: /usr/include/boost/property_map/parallel/detail/untracked_pair.hpp (2377B)
// Copyright (C) 2007 Matthias Troyer
//
// Use, modification and distribution is subject to the Boost Software
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
//
// This file contains helper data structures for use in transmitting
// properties. The basic idea is to optimize away any storage for the
// properties when no properties are specified.
#ifndef BOOST_PARALLEL_DETAIL_UNTRACKED_PAIR_HPP
#define BOOST_PARALLEL_DETAIL_UNTRACKED_PAIR_HPP
#include
#include // for std::pair
#include
namespace boost { namespace parallel { namespace detail {
/**
* This structure is like std::pair, with the only difference
* that tracking in the serialization library is turned off.
*/
template
struct untracked_pair : public std::pair
{
untracked_pair() {}
untracked_pair(const T& t, const U& u)
: std::pair(t,u) {}
template
untracked_pair(std::pair const& p)
: std::pair(p) {}
};
template
inline untracked_pair
make_untracked_pair(const T& t, const U& u)
{
return untracked_pair(t,u);
}
} } } // end namespace boost::parallel::detail
namespace boost { namespace mpi {
template
struct is_mpi_datatype >
: is_mpi_datatype > {};
} } // end namespace boost::mpi
namespace boost { namespace serialization {
// pair
template
inline void serialize(
Archive & ar,
boost::parallel::detail::untracked_pair & p,
const unsigned int /* file_version */
){
ar & boost::serialization::make_nvp("first", p.first);
ar & boost::serialization::make_nvp("second", p.second);
}
template
struct is_bitwise_serializable<
boost::parallel::detail::untracked_pair >
: is_bitwise_serializable > {};
template
struct implementation_level >
: mpl::int_ {} ;
template
struct tracking_level >
: mpl::int_ {} ;
} } // end namespace boost::serialization
#endif // BOOST_PARALLEL_DETAIL_UNTRACKED_PAIR_HPP