1 //=======================================================================
2 // Copyright 2002 Indiana University.
3 // Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
4 //
5 // Distributed under the Boost Software License, Version 1.0. (See
6 // accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt)
8 //=======================================================================
9
10 #include <boost/concept_archetype.hpp>
11 #include <boost/graph/breadth_first_search.hpp>
12 #include <boost/graph/graph_archetypes.hpp>
13
main()14 int main()
15 {
16 using namespace boost;
17 typedef default_constructible_archetype<
18 sgi_assignable_archetype< equality_comparable_archetype<> > >
19 vertex_t;
20 {
21 typedef incidence_graph_archetype< vertex_t, directed_tag,
22 allow_parallel_edge_tag >
23 IncidenceGraph;
24 typedef vertex_list_graph_archetype< vertex_t, directed_tag,
25 allow_parallel_edge_tag, IncidenceGraph >
26 graph_t;
27 graph_t& g = static_object< graph_t >::get();
28 vertex_t s;
29 read_write_property_map_archetype< vertex_t, color_value_archetype >
30 color;
31 breadth_first_search(g, s, color_map(color));
32 }
33 {
34 typedef incidence_graph_archetype< vertex_t, directed_tag,
35 allow_parallel_edge_tag >
36 IncidenceGraph;
37 typedef vertex_list_graph_archetype< vertex_t, directed_tag,
38 allow_parallel_edge_tag, IncidenceGraph >
39 graph_t;
40 graph_t& g = static_object< graph_t >::get();
41 vertex_t s;
42 readable_property_map_archetype< vertex_t, std::size_t > v_index;
43 breadth_first_search(g, s, vertex_index_map(v_index));
44 }
45 {
46 typedef incidence_graph_archetype< vertex_t, undirected_tag,
47 allow_parallel_edge_tag >
48 IncidenceGraph;
49 typedef vertex_list_graph_archetype< vertex_t, undirected_tag,
50 allow_parallel_edge_tag, IncidenceGraph >
51 Graph;
52 typedef property_graph_archetype< Graph, vertex_index_t, std::size_t >
53 graph_t;
54 graph_t& g = static_object< graph_t >::get();
55 vertex_t s;
56 bfs_visitor<> v;
57 buffer_archetype< vertex_t > b;
58 breadth_first_search(g, s, visitor(v).buffer(b));
59 }
60 return 0;
61 }
62