Chris@16: // Copyright (C) 2004-2006 The Trustees of Indiana University. Chris@16: Chris@16: // Use, modification and distribution is subject to the Boost Software Chris@16: // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at Chris@16: // http://www.boost.org/LICENSE_1_0.txt) Chris@16: Chris@16: // Authors: Douglas Gregor Chris@16: // Andrew Lumsdaine Chris@16: Chris@16: // Chris@16: // This file contains traits that describe Chris@16: // Chris@16: #ifndef BOOST_GRAPH_PARALLEL_CONTAINER_TRAITS_HPP Chris@16: #define BOOST_GRAPH_PARALLEL_CONTAINER_TRAITS_HPP Chris@16: Chris@16: #ifndef BOOST_GRAPH_USE_MPI Chris@16: #error "Parallel BGL files should not be included unless has been included" Chris@16: #endif Chris@16: Chris@16: namespace boost { namespace graph { namespace parallel { Chris@16: Chris@16: template Chris@16: struct process_group_type Chris@16: { Chris@16: typedef typename T::process_group_type type; Chris@16: }; Chris@16: Chris@16: template Chris@16: inline typename process_group_type::type Chris@16: process_group(const T& x) Chris@16: { return x.process_group(); } Chris@16: Chris@16: // Helper function that algorithms should use to get the process group Chris@16: // out of a container. Chris@16: template Chris@16: inline typename process_group_type::type Chris@16: process_group_adl(const Container& container) Chris@16: { Chris@16: return process_group(container); Chris@16: } Chris@16: Chris@16: Chris@16: } } } // end namespace boost::graph::parallel Chris@16: Chris@16: #endif // BOOST_GRAPH_PARALLEL_CONTAINER_TRAITS_HPP