Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
graph_traits.hpp File Reference
#include <boost/config.hpp>
#include <iterator>
#include <utility>
#include <boost/tuple/tuple.hpp>
#include <boost/mpl/if.hpp>
#include <boost/mpl/eval_if.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/mpl/not.hpp>
#include <boost/mpl/has_xxx.hpp>
#include <boost/mpl/void.hpp>
#include <boost/mpl/identity.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/iterator/iterator_categories.hpp>
#include <boost/iterator/iterator_adaptor.hpp>
#include <boost/pending/property.hpp>
#include <boost/detail/workaround.hpp>
Include dependency graph for graph_traits.hpp:

Classes

struct  boost::graph_traits< G >
 
struct  boost::directed_tag
 
struct  boost::undirected_tag
 
struct  boost::bidirectional_tag
 
struct  boost::graph_detail::is_directed_tag< Tag >
 
struct  boost::is_directed_graph< Graph >
 
struct  boost::is_undirected_graph< Graph >
 
struct  boost::allow_parallel_edge_tag
 
struct  boost::disallow_parallel_edge_tag
 
struct  boost::is_multigraph< Graph >
 The is_multigraph metafunction returns true if the graph allows parallel edges. More...
 
struct  boost::incidence_graph_tag
 
struct  boost::adjacency_graph_tag
 
struct  boost::bidirectional_graph_tag
 
struct  boost::vertex_list_graph_tag
 
struct  boost::edge_list_graph_tag
 
struct  boost::adjacency_matrix_tag
 
struct  boost::distributed_graph_tag
 
struct  boost::distributed_vertex_list_graph_tag
 
struct  boost::distributed_edge_list_graph_tag
 
struct  boost::is_incidence_graph< Graph >
 
struct  boost::is_bidirectional_graph< Graph >
 
struct  boost::is_vertex_list_graph< Graph >
 
struct  boost::is_edge_list_graph< Graph >
 
struct  boost::is_adjacency_matrix< Graph >
 
struct  boost::is_directed_unidirectional_graph< Graph >
 
struct  boost::is_directed_bidirectional_graph< Graph >
 
struct  boost::detail::get_graph_property_type< G >
 
struct  boost::detail::get_edge_property_type< G >
 
struct  boost::detail::get_vertex_property_type< G >
 
struct  boost::graph_property_type< G >
 
struct  boost::edge_property_type< G >
 
struct  boost::vertex_property_type< G >
 
struct  boost::graph_bundle_type< G >
 
struct  boost::vertex_bundle_type< G >
 
struct  boost::edge_bundle_type< G >
 
class  boost::graph::detail::bundled_result< Graph, Descriptor >
 
class  boost::graph::detail::bundled_result< Graph, graph_bundle_t >
 
struct  boost::graph_detail::is_no_bundle< T >
 
struct  boost::has_graph_property< Graph >
 
struct  boost::has_bundled_graph_property< Graph >
 
struct  boost::has_vertex_property< Graph >
 
struct  boost::has_bundled_vertex_property< Graph >
 
struct  boost::has_edge_property< Graph >
 
struct  boost::has_bundled_edge_property< Graph >
 

Namespaces

 boost
 Duration formatting facet for input.
 
 boost::detail
 
 boost::graph_detail
 
 boost::graph
 
 boost::graph::detail
 

Macros

#define BOOST_GRAPH_MEMBER_OR_VOID(name)
 
#define BOOST_GRAPH_PULL_OPT_MEMBER(name)   typedef typename detail::BOOST_JOIN(get_opt_member_, name)<G>::type name;
 
#define BOOST_GRAPH_SEQUENTIAL_TRAITS_DEFINES_DISTRIBUTED_TAGS
 

Typedefs

typedef
boost::forward_traversal_tag 
boost::multi_pass_input_iterator_tag
 

Functions

 boost::detail::BOOST_MPL_HAS_XXX_TRAIT_DEF (adjacency_iterator) template< typename T > struct BOOST_JOIN(get_member_
 
template<typename T >
struct boost::detail::BOOST_JOIN (get_opt_member_, adjacency_iterator)
 
 boost::detail::BOOST_MPL_HAS_XXX_TRAIT_DEF (out_edge_iterator) template< typename T > struct BOOST_JOIN(get_member_
 
template<typename T >
struct boost::detail::BOOST_JOIN (get_opt_member_, out_edge_iterator)
 
 boost::detail::BOOST_MPL_HAS_XXX_TRAIT_DEF (in_edge_iterator) template< typename T > struct BOOST_JOIN(get_member_
 
template<typename T >
struct boost::detail::BOOST_JOIN (get_opt_member_, in_edge_iterator)
 
 boost::detail::BOOST_MPL_HAS_XXX_TRAIT_DEF (vertex_iterator) template< typename T > struct BOOST_JOIN(get_member_
 
template<typename T >
struct boost::detail::BOOST_JOIN (get_opt_member_, vertex_iterator)
 
 boost::detail::BOOST_MPL_HAS_XXX_TRAIT_DEF (edge_iterator) template< typename T > struct BOOST_JOIN(get_member_
 
template<typename T >
struct boost::detail::BOOST_JOIN (get_opt_member_, edge_iterator)
 
 boost::detail::BOOST_MPL_HAS_XXX_TRAIT_DEF (vertices_size_type) template< typename T > struct BOOST_JOIN(get_member_
 
template<typename T >
struct boost::detail::BOOST_JOIN (get_opt_member_, vertices_size_type)
 
 boost::detail::BOOST_MPL_HAS_XXX_TRAIT_DEF (edges_size_type) template< typename T > struct BOOST_JOIN(get_member_
 
template<typename T >
struct boost::detail::BOOST_JOIN (get_opt_member_, edges_size_type)
 
 boost::detail::BOOST_MPL_HAS_XXX_TRAIT_DEF (degree_size_type) template< typename T > struct BOOST_JOIN(get_member_
 
template<typename T >
struct boost::detail::BOOST_JOIN (get_opt_member_, degree_size_type)
 
bool boost::detail::is_directed (directed_tag)
 
bool boost::detail::is_directed (undirected_tag)
 
template<typename Graph >
bool boost::is_directed (const Graph &)
 Return true if the given graph is directed. More...
 
template<typename Graph >
bool boost::is_undirected (const Graph &g)
 Return true if the given graph is undirected. More...
 
bool boost::detail::allows_parallel (allow_parallel_edge_tag)
 
bool boost::detail::allows_parallel (disallow_parallel_edge_tag)
 
template<typename Graph >
bool boost::allows_parallel_edges (const Graph &)
 
template<class T , class G >
T std::source (pair< T, T > p, const G &)
 
template<class T , class G >
T std::target (pair< T, T > p, const G &)
 

Variables

adjacency_iterator typedef
T::adjacency_iterator 
boost::detail::type
 
 boost::detail::out_edge_iterator {typedef typename T:: out_edge_iterator type
 
 boost::detail::in_edge_iterator {typedef typename T:: in_edge_iterator type
 
 boost::detail::vertex_iterator {typedef typename T:: vertex_iterator type
 
 boost::detail::edge_iterator {typedef typename T:: edge_iterator type
 
 boost::detail::vertices_size_type {typedef typename T:: vertices_size_type type
 
 boost::detail::edges_size_type {typedef typename T:: edges_size_type type
 
 boost::detail::degree_size_type {typedef typename T:: degree_size_type type
 

Macro Definition Documentation

#define BOOST_GRAPH_MEMBER_OR_VOID (   name)
Value:
template <typename T> struct BOOST_JOIN(get_member_, name) {typedef typename T::name type;}; \
template <typename T> struct BOOST_JOIN(get_opt_member_, name): \
BOOST_JOIN(has_, name)<T>::value, \
BOOST_JOIN(get_member_, name)<T>, \
boost::mpl::identity<void> > \
{};
const int name
Definition: gzip.hpp:94
#define BOOST_JOIN(X, Y)
Definition: suffix.hpp:544
#define BOOST_MPL_HAS_XXX_TRAIT_DEF(name)
Definition: has_xxx.hpp:278
adjacency_iterator typedef T::adjacency_iterator type
Definition: graph_traits.hpp:42
Definition: eval_if.hpp:53
#define BOOST_GRAPH_PULL_OPT_MEMBER (   name)    typedef typename detail::BOOST_JOIN(get_opt_member_, name)<G>::type name;
#define BOOST_GRAPH_SEQUENTIAL_TRAITS_DEFINES_DISTRIBUTED_TAGS