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