Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r58554 - in branches/release: . boost boost/algorithm/string boost/archive boost/config boost/filesystem boost/functional/hash boost/fusion boost/graph boost/graph/detail boost/graph/distributed boost/graph/distributed/detail boost/graph/planar_detail boost/graph/property_maps boost/integer boost/interprocess boost/intrusive boost/iostreams boost/math boost/numeric/ublas boost/pending boost/program_options boost/property_map boost/property_tree boost/python boost/serialization boost/signals boost/signals2 boost/spirit boost/spirit/home boost/spirit/home/karma boost/spirit/home/support boost/system boost/thread boost/tr1 boost/type_traits boost/unordered boost/utility boost/variant boost/wave doc libs libs/config libs/filesystem libs/functional/hash libs/fusion libs/graph/build libs/graph/doc libs/graph/example libs/graph/src libs/graph/test libs/graph_parallel libs/graph_parallel/test libs/integer libs/interprocess libs/intrusive libs/iostreams libs/math libs/mpl/doc/refmanual libs/mpl/doc/src/refmanual libs/numeric/ublas libs/numeric/ublas/doc libs/program_options libs/property_tree libs/python libs/serialization libs/signals libs/signals2 libs/spirit libs/spirit/classic/example libs/spirit/doc libs/spirit/example libs/spirit/phoenix libs/spirit/test libs/spirit/test/qi libs/static_assert libs/system libs/thread libs/thread/doc libs/timer libs/tr1 libs/type_traits libs/unordered libs/utility libs/wave more people status tools tools/boostbook tools/build/v2 tools/inspect tools/quickbook tools/regression tools/release tools/wave wiki
From: jewillco_at_[hidden]
Date: 2009-12-28 22:51:02


Author: jewillco
Date: 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
New Revision: 58554
URL: http://svn.boost.org/trac/boost/changeset/58554

Log:
Merged changes from trunk that are going into 1.42.0
Added:
   branches/release/boost/graph/dll_import_export.hpp
      - copied unchanged from r58179, /trunk/boost/graph/dll_import_export.hpp
   branches/release/boost/graph/lookup_edge.hpp
      - copied, changed from r57928, /trunk/boost/graph/lookup_edge.hpp
Removed:
   branches/release/boost/dynamic_property_map.hpp
   branches/release/boost/pending/ct_if.hpp
   branches/release/boost/property_map.hpp
   branches/release/boost/property_map_iterator.hpp
   branches/release/boost/vector_property_map.hpp
Properties modified:
   branches/release/ (props changed)
   branches/release/CMakeLists.txt (props changed)
   branches/release/INSTALL (props changed)
   branches/release/LICENSE_1_0.txt (props changed)
   branches/release/boost/ (props changed)
   branches/release/boost-build.jam (props changed)
   branches/release/boost.css (props changed)
   branches/release/boost.png (props changed)
   branches/release/boost/algorithm/string/ (props changed)
   branches/release/boost/archive/ (props changed)
   branches/release/boost/config/ (props changed)
   branches/release/boost/filesystem/ (props changed)
   branches/release/boost/functional/hash/ (props changed)
   branches/release/boost/fusion/ (props changed)
   branches/release/boost/graph/ (props changed)
   branches/release/boost/integer/ (props changed)
   branches/release/boost/interprocess/ (props changed)
   branches/release/boost/intrusive/ (props changed)
   branches/release/boost/iostreams/ (props changed)
   branches/release/boost/math/ (props changed)
   branches/release/boost/numeric/ublas/ (props changed)
   branches/release/boost/program_options/ (props changed)
   branches/release/boost/property_tree/ (props changed)
   branches/release/boost/python/ (props changed)
   branches/release/boost/serialization/ (props changed)
   branches/release/boost/signals/ (props changed)
   branches/release/boost/signals2/ (props changed)
   branches/release/boost/spirit/ (props changed)
   branches/release/boost/spirit/home/ (props changed)
   branches/release/boost/spirit/home/karma/ (props changed)
   branches/release/boost/spirit/home/support/attributes.hpp (props changed)
   branches/release/boost/system/ (props changed)
   branches/release/boost/thread/ (props changed)
   branches/release/boost/thread.hpp (props changed)
   branches/release/boost/tr1/ (props changed)
   branches/release/boost/type_traits/ (props changed)
   branches/release/boost/unordered/ (props changed)
   branches/release/boost/utility/value_init.hpp (props changed)
   branches/release/boost/variant/ (props changed)
   branches/release/boost/version.hpp (props changed)
   branches/release/boost/wave/ (props changed)
   branches/release/bootstrap.bat (props changed)
   branches/release/bootstrap.sh (props changed)
   branches/release/doc/ (props changed)
   branches/release/index.htm (props changed)
   branches/release/libs/ (props changed)
   branches/release/libs/config/ (props changed)
   branches/release/libs/filesystem/ (props changed)
   branches/release/libs/functional/hash/ (props changed)
   branches/release/libs/fusion/ (props changed)
   branches/release/libs/graph_parallel/ (props changed)
   branches/release/libs/integer/ (props changed)
   branches/release/libs/interprocess/ (props changed)
   branches/release/libs/intrusive/ (props changed)
   branches/release/libs/iostreams/ (props changed)
   branches/release/libs/libraries.htm (props changed)
   branches/release/libs/maintainers.txt (props changed)
   branches/release/libs/math/ (props changed)
   branches/release/libs/mpl/doc/refmanual/broken-compiler-workarounds.html (props changed)
   branches/release/libs/mpl/doc/refmanual/categorized-index-concepts.html (props changed)
   branches/release/libs/mpl/doc/refmanual/cfg-no-preprocessed-headers.html (props changed)
   branches/release/libs/mpl/doc/refmanual/composition-and-argument-binding.html (props changed)
   branches/release/libs/mpl/doc/refmanual/data-types-concepts.html (props changed)
   branches/release/libs/mpl/doc/refmanual/data-types-miscellaneous.html (props changed)
   branches/release/libs/mpl/doc/refmanual/extensible-associative-sequence.html (props changed)
   branches/release/libs/mpl/doc/refmanual/inserter-class.html (props changed)
   branches/release/libs/mpl/doc/refmanual/tag-dispatched-metafunction.html (props changed)
   branches/release/libs/mpl/doc/refmanual/trivial-metafunctions-summary.html (props changed)
   branches/release/libs/mpl/doc/src/refmanual/Iterators-Iterator.rst (props changed)
   branches/release/libs/numeric/ublas/ (props changed)
   branches/release/libs/numeric/ublas/doc/ (props changed)
   branches/release/libs/program_options/ (props changed)
   branches/release/libs/property_tree/ (props changed)
   branches/release/libs/python/ (props changed)
   branches/release/libs/serialization/ (props changed)
   branches/release/libs/signals/ (props changed)
   branches/release/libs/signals2/ (props changed)
   branches/release/libs/spirit/ (props changed)
   branches/release/libs/spirit/classic/example/ (props changed)
   branches/release/libs/spirit/doc/ (props changed)
   branches/release/libs/spirit/example/ (props changed)
   branches/release/libs/spirit/phoenix/ (props changed)
   branches/release/libs/spirit/test/ (props changed)
   branches/release/libs/spirit/test/qi/optional.cpp (props changed)
   branches/release/libs/static_assert/ (props changed)
   branches/release/libs/system/ (props changed)
   branches/release/libs/thread/ (props changed)
   branches/release/libs/thread/doc/ (props changed)
   branches/release/libs/timer/ (props changed)
   branches/release/libs/tr1/ (props changed)
   branches/release/libs/type_traits/ (props changed)
   branches/release/libs/unordered/ (props changed)
   branches/release/libs/utility/swap.html (props changed)
   branches/release/libs/utility/value_init.htm (props changed)
   branches/release/libs/utility/value_init_test.cpp (props changed)
   branches/release/libs/wave/ (props changed)
   branches/release/more/ (props changed)
   branches/release/people/ (props changed)
   branches/release/rst.css (props changed)
   branches/release/status/ (props changed)
   branches/release/tools/ (props changed)
   branches/release/tools/boostbook/ (props changed)
   branches/release/tools/build/v2/ (props changed)
   branches/release/tools/inspect/ (props changed)
   branches/release/tools/quickbook/ (props changed)
   branches/release/tools/regression/ (props changed)
   branches/release/tools/release/ (props changed)
   branches/release/tools/wave/ (props changed)
   branches/release/wiki/ (props changed)
Text files modified:
   branches/release/boost/graph/adjacency_list.hpp | 39 ---
   branches/release/boost/graph/adjacency_list_io.hpp | 2
   branches/release/boost/graph/adjacency_matrix.hpp | 18 +
   branches/release/boost/graph/astar_search.hpp | 4
   branches/release/boost/graph/biconnected_components.hpp | 2
   branches/release/boost/graph/bron_kerbosch_all_cliques.hpp | 10
   branches/release/boost/graph/clustering_coefficient.hpp | 7
   branches/release/boost/graph/compressed_sparse_row_graph.hpp | 170 ------------------
   branches/release/boost/graph/core_numbers.hpp | 2
   branches/release/boost/graph/dag_shortest_paths.hpp | 2
   branches/release/boost/graph/depth_first_search.hpp | 10
   branches/release/boost/graph/detail/adjacency_list.hpp | 8
   branches/release/boost/graph/detail/compressed_sparse_row_struct.hpp | 24 --
   branches/release/boost/graph/detail/histogram_sort.hpp | 4
   branches/release/boost/graph/distributed/adjacency_list.hpp | 52 ++--
   branches/release/boost/graph/distributed/betweenness_centrality.hpp | 18
   branches/release/boost/graph/distributed/compressed_sparse_row_graph.hpp | 104 -----------
   branches/release/boost/graph/distributed/detail/mpi_process_group.ipp | 1
   branches/release/boost/graph/dominator_tree.hpp | 2
   branches/release/boost/graph/filtered_graph.hpp | 18 +
   branches/release/boost/graph/floyd_warshall_shortest.hpp | 2
   branches/release/boost/graph/geodesic_distance.hpp | 2
   branches/release/boost/graph/graph_traits.hpp | 10 +
   branches/release/boost/graph/graphml.hpp | 55 -----
   branches/release/boost/graph/graphviz.hpp | 15 -
   branches/release/boost/graph/grid_graph.hpp | 2
   branches/release/boost/graph/howard_cycle_ratio.hpp | 20 +-
   branches/release/boost/graph/is_straight_line_drawing.hpp | 2
   branches/release/boost/graph/isomorphism.hpp | 2
   branches/release/boost/graph/kolmogorov_max_flow.hpp | 3
   branches/release/boost/graph/labeled_graph.hpp | 5
   branches/release/boost/graph/lookup_edge.hpp | 2
   branches/release/boost/graph/max_cardinality_matching.hpp | 12
   branches/release/boost/graph/mcgregor_common_subgraphs.hpp | 4
   branches/release/boost/graph/metric_tsp_approx.hpp | 11
   branches/release/boost/graph/named_function_params.hpp | 6
   branches/release/boost/graph/planar_detail/boyer_myrvold_impl.hpp | 6
   branches/release/boost/graph/planar_face_traversal.hpp | 4
   branches/release/boost/graph/properties.hpp | 20 +
   branches/release/boost/graph/property_maps/constant_property_map.hpp | 2
   branches/release/boost/graph/r_c_shortest_paths.hpp | 14
   branches/release/boost/graph/reverse_graph.hpp | 36 +++
   branches/release/boost/graph/subgraph.hpp | 8
   branches/release/boost/graph/two_bit_color_map.hpp | 7
   branches/release/boost/pending/property.hpp | 12
   branches/release/boost/property_map/property_map.hpp | 21 +
   branches/release/libs/graph/build/Jamfile.v2 | 44 ----
   branches/release/libs/graph/doc/astar_search.html | 3
   branches/release/libs/graph/doc/compressed_sparse_row.html | 163 ++---------------
   branches/release/libs/graph/doc/index.html | 39 ++-
   branches/release/libs/graph/doc/known_problems.html | 8
   branches/release/libs/graph/doc/kolmogorov_max_flow.html | 4
   branches/release/libs/graph/doc/prim_minimum_spanning_tree.html | 5
   branches/release/libs/graph/doc/table_of_contents.html | 290 ++++++++++++++++---------------
   branches/release/libs/graph/doc/transitive_closure.html | 5
   branches/release/libs/graph/example/labeled_graph.cpp | 2
   branches/release/libs/graph/src/graphml.cpp | 361 +++++++++++----------------------------
   branches/release/libs/graph/src/read_graphviz_new.cpp | 11
   branches/release/libs/graph/test/Jamfile.v2 | 10
   branches/release/libs/graph/test/adj_list_loops.cpp | 4
   branches/release/libs/graph/test/astar_search_test.cpp | 4
   branches/release/libs/graph/test/basic_planarity_test.cpp | 2
   branches/release/libs/graph/test/bron_kerbosch_all_cliques.cpp | 2
   branches/release/libs/graph/test/closeness_centrality.cpp | 4
   branches/release/libs/graph/test/clustering_coefficient.cpp | 4
   branches/release/libs/graph/test/core_numbers_test.cpp | 8
   branches/release/libs/graph/test/csr_graph_test.cpp | 63 ------
   branches/release/libs/graph/test/degree_centrality.cpp | 4
   branches/release/libs/graph/test/dfs.cpp | 8
   branches/release/libs/graph/test/dominator_tree_test.cpp | 2
   branches/release/libs/graph/test/eccentricity.cpp | 4
   branches/release/libs/graph/test/grid_graph_cc.cpp | 4
   branches/release/libs/graph/test/grid_graph_test.cpp | 6
   branches/release/libs/graph/test/is_straight_line_draw_test.cpp | 2
   branches/release/libs/graph/test/labeled_graph.cpp | 2
   branches/release/libs/graph/test/layout_test.cpp | 4
   branches/release/libs/graph/test/make_bicon_planar_test.cpp | 2
   branches/release/libs/graph/test/make_maximal_planar_test.cpp | 2
   branches/release/libs/graph/test/matching_test.cpp | 4
   branches/release/libs/graph/test/mcgregor_subgraphs_test.cpp | 4
   branches/release/libs/graph/test/mean_geodesic.cpp | 4
   branches/release/libs/graph/test/metric_tsp_approx.cpp | 2
   branches/release/libs/graph/test/named_vertices_test.cpp | 2
   branches/release/libs/graph/test/r_c_shortest_paths_test.cpp | 2
   branches/release/libs/graph/test/serialize.cpp | 4
   branches/release/libs/graph/test/subgraph.cpp | 2
   branches/release/libs/graph/test/subgraph_bundled.cpp | 6
   branches/release/libs/graph/test/subgraph_props.cpp | 4
   branches/release/libs/graph/test/test_construction.hpp | 2
   branches/release/libs/graph/test/test_destruction.hpp | 6
   branches/release/libs/graph/test/test_direction.hpp | 6
   branches/release/libs/graph/test/test_graphs.cpp | 2
   branches/release/libs/graph/test/tiernan_all_cycles.cpp | 2
   branches/release/libs/graph_parallel/test/adjlist_remove_test.cpp | 12
   94 files changed, 620 insertions(+), 1300 deletions(-)

Deleted: branches/release/boost/dynamic_property_map.hpp
==============================================================================
--- branches/release/boost/dynamic_property_map.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
+++ (empty file)
@@ -1,19 +0,0 @@
-/*=============================================================================
-Copyright (c) 2009 Trustees of Indiana University
-
-Distributed under 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)
-=============================================================================*/
-// Redirect/warning header, adapted from the version in Spirit
-
-#include <boost/version.hpp>
-
-#if BOOST_VERSION >= 103800
-#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__)
-# pragma message ("Warning: This header is deprecated. Please use: boost/property_map/dynamic_property_map.hpp")
-#elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__)
-# warning "This header is deprecated. Please use: boost/property_map/dynamic_property_map.hpp"
-#endif
-#endif
-
-#include <boost/property_map/dynamic_property_map.hpp>

Modified: branches/release/boost/graph/adjacency_list.hpp
==============================================================================
--- branches/release/boost/graph/adjacency_list.hpp (original)
+++ branches/release/boost/graph/adjacency_list.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -17,16 +17,7 @@
 #include <list>
 #include <set>
 
-// TODO: Deprecating this requires some cooperation from Boost.Config. It's not
-// a good idea to just refuse the inclusion because it could break otherwise
-// functioning code.
-#if !defined BOOST_NO_HASH
-# ifdef BOOST_HASH_SET_HEADER
-# include BOOST_HASH_SET_HEADER
-# else
-# include <hash_set>
-# endif
-#endif
+#include <boost/unordered_set.hpp>
 
 #if !defined BOOST_NO_SLIST
 # ifdef BOOST_SLIST_HEADER
@@ -73,12 +64,10 @@
   struct mapS { };
   struct multisetS { };
   struct multimapS { };
-#if !defined BOOST_NO_HASH
   struct hash_setS { };
   struct hash_mapS { };
   struct hash_multisetS { };
   struct hash_multimapS { };
-#endif
 
   template <class Selector, class ValueType>
   struct container_gen { };
@@ -118,27 +107,25 @@
     typedef std::multiset<ValueType> type;
   };
 
-#if !defined BOOST_NO_HASH
   template <class ValueType>
   struct container_gen<hash_setS, ValueType> {
- typedef BOOST_STD_EXTENSION_NAMESPACE::hash_set<ValueType> type;
+ typedef boost::unordered_set<ValueType> type;
   };
 
   template <class ValueType>
   struct container_gen<hash_mapS, ValueType> {
- typedef BOOST_STD_EXTENSION_NAMESPACE::hash_set<ValueType> type;
+ typedef boost::unordered_set<ValueType> type;
   };
 
   template <class ValueType>
   struct container_gen<hash_multisetS, ValueType> {
- typedef BOOST_STD_EXTENSION_NAMESPACE::hash_multiset<ValueType> type;
+ typedef boost::unordered_multiset<ValueType> type;
   };
 
   template <class ValueType>
   struct container_gen<hash_multimapS, ValueType> {
- typedef BOOST_STD_EXTENSION_NAMESPACE::hash_multiset<ValueType> type;
+ typedef boost::unordered_multiset<ValueType> type;
   };
-#endif
 
 #else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
@@ -180,27 +167,25 @@
     struct bind_ { typedef std::multiset<T, std::less<T> > type; };
   };
 
-#if !defined BOOST_NO_HASH
   struct hash_setS {
     template <class T>
- struct bind_ { typedef BOOST_STD_EXTENSION_NAMESPACE::hash_set<T, std::less<T> > type; };
+ struct bind_ { typedef boost::unordered_set<T> type; };
   };
 
   struct hash_mapS {
     template <class T>
- struct bind_ { typedef BOOST_STD_EXTENSION_NAMESPACE::hash_set<T, std::less<T> > type; };
+ struct bind_ { typedef boost::unordered_set<T> type; };
   };
 
   struct hash_multisetS {
     template <class T>
- struct bind_ { typedef BOOST_STD_EXTENSION_NAMESPACE::hash_multiset<T, std::less<T> > type; };
+ struct bind_ { typedef boost::unordered_multiset<T> type; };
   };
 
   struct hash_multimapS {
     template <class T>
- struct bind_ { typedef BOOST_STD_EXTENSION_NAMESPACE::hash_multiset<T, std::less<T> > type; };
+ struct bind_ { typedef boost::unordered_multiset<T> type; };
   };
-#endif
 
   template <class Selector> struct container_selector {
     typedef vecS type;
@@ -216,9 +201,7 @@
   BOOST_CONTAINER_SELECTOR(mapS);
   BOOST_CONTAINER_SELECTOR(setS);
   BOOST_CONTAINER_SELECTOR(multisetS);
-#if !defined BOOST_NO_HASH
   BOOST_CONTAINER_SELECTOR(hash_mapS);
-#endif
 #if !defined BOOST_NO_SLIST
   BOOST_CONTAINER_SELECTOR(slistS);
 #endif
@@ -256,24 +239,20 @@
   struct parallel_edge_traits<multisetS> {
     typedef allow_parallel_edge_tag type; };
 
-#if !defined BOOST_NO_HASH
   template <>
   struct parallel_edge_traits<hash_setS> {
     typedef disallow_parallel_edge_tag type;
   };
-#endif
 
   // mapS is obsolete, replaced with setS
   template <>
   struct parallel_edge_traits<mapS> {
     typedef disallow_parallel_edge_tag type; };
 
-#if !defined BOOST_NO_HASH
   template <>
   struct parallel_edge_traits<hash_mapS> {
     typedef disallow_parallel_edge_tag type;
   };
-#endif
 
   namespace detail {
     template <class Directed> struct is_random_access {

Modified: branches/release/boost/graph/adjacency_list_io.hpp
==============================================================================
--- branches/release/boost/graph/adjacency_list_io.hpp (original)
+++ branches/release/boost/graph/adjacency_list_io.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -94,7 +94,7 @@
 }
 
 inline void getSubset
-( no_property& p, const no_property& s )
+( no_property&, const no_property& )
 {
 }
 

Modified: branches/release/boost/graph/adjacency_matrix.hpp
==============================================================================
--- branches/release/boost/graph/adjacency_matrix.hpp (original)
+++ branches/release/boost/graph/adjacency_matrix.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -925,18 +925,19 @@
   // Functions required by the MutableGraph concept
 
   // O(1)
- template <typename D, typename VP, typename EP, typename GP, typename A>
+ template <typename D, typename VP, typename EP, typename GP, typename A,
+ typename EP2>
   std::pair<typename adjacency_matrix<D,VP,EP,GP,A>::edge_descriptor, bool>
   add_edge(typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor u,
            typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor v,
- const EP& ep,
+ const EP2& ep,
            adjacency_matrix<D,VP,EP,GP,A>& g)
   {
     typedef typename adjacency_matrix<D,VP,EP,GP,A>::edge_descriptor
       edge_descriptor;
     if (detail::get_edge_exists(g.get_edge(u,v), 0) == false) {
       ++(g.m_num_edges);
- detail::set_property(g.get_edge(u,v), ep, 0);
+ detail::set_property(g.get_edge(u,v), EP(ep), 0);
       detail::set_edge_exists(g.get_edge(u,v), true, 0);
       return std::make_pair
         (edge_descriptor(true, u, v, &detail::get_property(g.get_edge(u,v))),
@@ -989,9 +990,10 @@
     return *vertices(g).first;
   }
 
- template <typename D, typename VP, typename EP, typename GP, typename A>
+ template <typename D, typename VP, typename EP, typename GP, typename A,
+ typename VP2>
   inline typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor
- add_vertex(const VP& vp, adjacency_matrix<D,VP,EP,GP,A>& g) {
+ add_vertex(const VP2& /*vp*/, adjacency_matrix<D,VP,EP,GP,A>& g) {
     // UNDER CONSTRUCTION
     assert(false);
     return *vertices(g).first;
@@ -999,8 +1001,8 @@
 
   template <typename D, typename VP, typename EP, typename GP, typename A>
   inline void
- remove_vertex(typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor u,
- adjacency_matrix<D,VP,EP,GP,A>& g)
+ remove_vertex(typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor /*u*/,
+ adjacency_matrix<D,VP,EP,GP,A>& /*g*/)
   {
     // UNDER CONSTRUCTION
     assert(false);
@@ -1298,7 +1300,7 @@
   template <typename D, typename VP, typename EP, typename GP, typename A>
   typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor
   vertex(typename adjacency_matrix<D,VP,EP,GP,A>::vertices_size_type n,
- const adjacency_matrix<D,VP,EP,GP,A>& g)
+ const adjacency_matrix<D,VP,EP,GP,A>&)
   {
     return n;
   }

Modified: branches/release/boost/graph/astar_search.hpp
==============================================================================
--- branches/release/boost/graph/astar_search.hpp (original)
+++ branches/release/boost/graph/astar_search.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -238,9 +238,9 @@
      AStarHeuristic h, AStarVisitor vis,
      PredecessorMap predecessor, CostMap cost,
      DistanceMap distance, WeightMap weight,
- ColorMap color, VertexIndexMap index_map,
+ ColorMap color, VertexIndexMap /*index_map*/,
      CompareFunction compare, CombineFunction combine,
- CostInf inf, CostZero zero)
+ CostInf /*inf*/, CostZero zero)
   {
     typedef typename graph_traits<VertexListGraph>::vertex_descriptor
       Vertex;

Modified: branches/release/boost/graph/biconnected_components.hpp
==============================================================================
--- branches/release/boost/graph/biconnected_components.hpp (original)
+++ branches/release/boost/graph/biconnected_components.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -83,9 +83,9 @@
           put(lowpt, source(e, g),
               min BOOST_PREVENT_MACRO_SUBSTITUTION(get(lowpt, source(e, g)),
                                                    get(dtm, target(e, g))));
+ }
         vis.back_edge(e, g);
       }
- }
 
       template <typename Edge, typename Graph>
       void forward_or_cross_edge(const Edge& e, Graph& g)

Modified: branches/release/boost/graph/bron_kerbosch_all_cliques.hpp
==============================================================================
--- branches/release/boost/graph/bron_kerbosch_all_cliques.hpp (original)
+++ branches/release/boost/graph/bron_kerbosch_all_cliques.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -12,6 +12,7 @@
 #include <boost/config.hpp>
 
 #include <boost/graph/graph_concepts.hpp>
+#include <boost/graph/lookup_edge.hpp>
 
 #include <boost/concept/detail/concept_def.hpp>
 namespace boost {
@@ -125,9 +126,7 @@
                             typename graph_traits<Graph>::vertex_descriptor v,
                             typename graph_traits<Graph>::undirected_category)
     {
- function_requires< AdjacencyMatrixConcept<Graph> >();
-
- return edge(u, v, g).second;
+ return lookup_edge(u, v, g).second;
     }
 
     template <typename Graph>
@@ -137,13 +136,12 @@
                             typename graph_traits<Graph>::vertex_descriptor v,
                             typename graph_traits<Graph>::directed_category)
     {
- function_requires< AdjacencyMatrixConcept<Graph> >();
         // Note that this could alternate between using an || to determine
         // full connectivity. I believe that this should produce strongly
         // connected components. Note that using && instead of || will
         // change the results to a fully connected subgraph (i.e., symmetric
         // edges between all vertices s.t., if a->b, then b->a.
- return edge(u, v, g).second && edge(v, u, g).second;
+ return lookup_edge(u, v, g).second && lookup_edge(v, u, g).second;
     }
 
     template <typename Graph, typename Container>
@@ -189,7 +187,7 @@
             for(ni = nots.begin(); ni != nend; ++ni) {
                 for(ci = cands.begin(); ci != cend; ++ci) {
                     // if we don't find an edge, then we're okay.
- if(!edge(*ni, *ci, g).second) break;
+ if(!lookup_edge(*ni, *ci, g).second) break;
                 }
                 // if we iterated all the way to the end, then *ni
                 // is connected to all *ci

Modified: branches/release/boost/graph/clustering_coefficient.hpp
==============================================================================
--- branches/release/boost/graph/clustering_coefficient.hpp (original)
+++ branches/release/boost/graph/clustering_coefficient.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -10,6 +10,7 @@
 #include <boost/utility.hpp>
 #include <boost/graph/graph_traits.hpp>
 #include <boost/graph/graph_concepts.hpp>
+#include <boost/graph/lookup_edge.hpp>
 
 namespace boost
 {
@@ -42,8 +43,8 @@
 
     {
         function_requires< AdjacencyMatrixConcept<Graph> >();
- return (edge(u, v, g).second ? 1 : 0) +
- (edge(v, u, g).second ? 1 : 0);
+ return (lookup_edge(u, v, g).second ? 1 : 0) +
+ (lookup_edge(v, u, g).second ? 1 : 0);
     }
 
     // This template matches undirectedS
@@ -55,7 +56,7 @@
                 undirected_tag)
     {
         function_requires< AdjacencyMatrixConcept<Graph> >();
- return edge(u, v, g).second ? 1 : 0;
+ return lookup_edge(u, v, g).second ? 1 : 0;
     }
 }
 

Modified: branches/release/boost/graph/compressed_sparse_row_graph.hpp
==============================================================================
--- branches/release/boost/graph/compressed_sparse_row_graph.hpp (original)
+++ branches/release/boost/graph/compressed_sparse_row_graph.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -47,17 +47,6 @@
 # error You will need a compiler that conforms better to the C++ standard.
 #endif
 
-#ifndef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
-#warning "Using deprecated BGL compressed sparse row graph interface --"
-#warning "please see the documentation for the new interface and then"
-#warning "#define BOOST_GRAPH_USE_NEW_CSR_INTERFACE before including"
-#warning "<boost/graph/compressed_sparse_row_graph.hpp>"
-#endif // BOOST_GRAPH_USE_NEW_CSR_INTERFACE
-
-#ifndef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
-#define BOOST_GRAPH_USE_OLD_CSR_INTERFACE
-#endif
-
 namespace boost {
 
 // A tag type indicating that the graph in question is a compressed
@@ -69,7 +58,6 @@
 // vertex.
 enum edges_are_sorted_t {edges_are_sorted};
 
-#ifdef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
 // A type (edges_are_sorted_global_t) and a value (edges_are_sorted_global)
 // used to indicate that the edge list passed into the CSR graph is already
 // sorted by source vertex.
@@ -122,8 +110,6 @@
 // distributed CSR constructors.
 enum edges_are_unsorted_global_t {edges_are_unsorted_global};
 
-#endif // BOOST_GRAPH_USE_NEW_CSR_INTERFACE
-
 /****************************************************************************
  * Local helper macros to reduce typing and clutter later on. *
  ****************************************************************************/
@@ -146,7 +132,6 @@
    compressed_sparse_row_graph<bidirectionalS, VertexProperty, EdgeProperty, \
                                GraphProperty, Vertex, EdgeIndex>
 
-#ifdef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
 namespace detail {
   template <typename T>
   struct default_construct_iterator: public boost::iterator_facade<default_construct_iterator<T>, T, boost::random_access_traversal_tag, const T&> {
@@ -179,7 +164,6 @@
     }
   };
 }
-#endif // BOOST_GRAPH_USE_NEW_CSR_INTERFACE
 
 /** Compressed sparse row graph.
  *
@@ -271,7 +255,6 @@
   compressed_sparse_row_graph(vertices_size_type numverts)
     : inherited_vertex_properties(numverts), m_forward(numverts) {}
 
-#ifdef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
   // From number of vertices and unsorted list of edges
   template <typename MultiPassInputIterator>
   compressed_sparse_row_graph(edges_are_unsorted_multi_pass_t,
@@ -327,38 +310,6 @@
   {
     m_forward.assign_unsorted_multi_pass_edges(edge_begin, edge_end, ep_iter, numlocalverts, global_to_local, source_pred);
   }
-#endif // BOOST_GRAPH_USE_NEW_CSR_INTERFACE
-
-#ifdef BOOST_GRAPH_USE_OLD_CSR_INTERFACE
-
- // From number of vertices and sorted list of edges (deprecated
- // interface)
- template<typename InputIterator>
- compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
- vertices_size_type numverts,
- edges_size_type numedges = 0,
- const GraphProperty& prop = GraphProperty())
- : m_property(prop)
- {
- m_forward.assign_from_sorted_edges(edge_begin, edge_end, identity_property_map(), keep_all(), numverts, numedges);
- inherited_vertex_properties::resize(numverts);
- }
-
- // From number of vertices and sorted list of edges (deprecated
- // interface)
- template<typename InputIterator, typename EdgePropertyIterator>
- compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
- EdgePropertyIterator ep_iter,
- vertices_size_type numverts,
- edges_size_type numedges = 0,
- const GraphProperty& prop = GraphProperty())
- : m_property(prop)
- {
- m_forward.assign_from_sorted_edges(edge_begin, edge_end, ep_iter, identity_property_map(), keep_all(), numverts, numedges);
- inherited_vertex_properties::resize(numverts);
- }
-
-#endif // BOOST_GRAPH_USE_OLD_CSR_INTERFACE
 
   // From number of vertices and sorted list of edges (new interface)
   template<typename InputIterator>
@@ -387,7 +338,6 @@
     inherited_vertex_properties::resize(numverts);
   }
 
-#ifdef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
   // From number of vertices and sorted list of edges, filtered and global (new interface)
   template<typename InputIterator, typename GlobalToLocal, typename SourcePred>
   compressed_sparse_row_graph(edges_are_sorted_global_t,
@@ -556,8 +506,6 @@
     m_forward.assign_sources_and_targets_global(sources, targets, edge_props, numlocalverts, global_to_local);
   }
 
-#endif // BOOST_GRAPH_USE_NEW_CSR_INTERFACE
-
 
   // Requires IncidenceGraph and a vertex index map
   template<typename Graph, typename VertexIndexMap>
@@ -635,7 +583,6 @@
     inherited_vertex_properties::resize(numverts);
   }
 
-#ifdef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
   // Add edges from a sorted (smallest sources first) range of pairs and edge
   // properties
   template <typename BidirectionalIteratorOrig, typename EPIterOrig,
@@ -754,7 +701,6 @@
                      EPIterator ep_iter, EPIterator ep_iter_end) {
     this->add_edges_internal(first, last, ep_iter, ep_iter_end, identity_property_map());
   }
-#endif // BOOST_GRAPH_USE_NEW_CSR_INTERFACE
 
   using inherited_vertex_properties::operator[];
 
@@ -775,8 +721,6 @@
   GraphProperty m_property;
 };
 
-#ifdef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
-// Bidir is only supported in this mode
 template<typename VertexProperty,
          typename EdgeProperty,
          typename GraphProperty,
@@ -1144,7 +1088,6 @@
   backward_type m_backward;
   GraphProperty m_property;
 };
-#endif // BOOST_GRAPH_USE_NEW_CSR_INTERFACE
 
 // Construction functions
 template<BOOST_CSR_GRAPH_TEMPLATE_PARMS>
@@ -1185,44 +1128,6 @@
   return old_num_verts_plus_one - 1;
 }
 
-#ifdef BOOST_GRAPH_USE_OLD_CSR_INTERFACE
-// This function requires that (src, tgt) be lexicographically at least as
-// large as the largest edge in the graph so far
-template<BOOST_DIR_CSR_GRAPH_TEMPLATE_PARMS>
-inline typename BOOST_DIR_CSR_GRAPH_TYPE::edge_descriptor
-add_edge(Vertex src, Vertex tgt, BOOST_DIR_CSR_GRAPH_TYPE& g) {
- assert ((g.m_last_source == 0 || src >= g.m_last_source - 1) &&
- src < num_vertices(g));
- EdgeIndex num_edges_orig = g.m_forward.m_column.size();
- for (; g.m_last_source <= src; ++g.m_last_source)
- g.m_forward.m_rowstart[g.m_last_source] = num_edges_orig;
- g.m_forward.m_rowstart[src + 1] = num_edges_orig + 1;
- g.m_forward.m_column.push_back(tgt);
- typedef typename BOOST_DIR_CSR_GRAPH_TYPE::edge_push_back_type push_back_type;
- g.edge_properties().push_back(push_back_type());
- return typename BOOST_DIR_CSR_GRAPH_TYPE::edge_descriptor(src, num_edges_orig);
-}
-
-// This function requires that src be at least as large as the largest source
-// in the graph so far
-template<BOOST_DIR_CSR_GRAPH_TEMPLATE_PARMS>
-inline typename BOOST_DIR_CSR_GRAPH_TYPE::edge_descriptor
-add_edge(Vertex src, Vertex tgt,
- typename BOOST_DIR_CSR_GRAPH_TYPE::edge_bundled const& p,
- BOOST_DIR_CSR_GRAPH_TYPE& g) {
- assert ((g.m_last_source == 0 || src >= g.m_last_source - 1) &&
- src < num_vertices(g));
- EdgeIndex num_edges_orig = g.m_forward.m_column.size();
- for (; g.m_last_source <= src; ++g.m_last_source)
- g.m_forward.m_rowstart[g.m_last_source] = num_edges_orig;
- g.m_forward.m_rowstart[src + 1] = num_edges_orig + 1;
- g.m_forward.m_column.push_back(tgt);
- g.edge_properties().push_back(p);
- return typename BOOST_DIR_CSR_GRAPH_TYPE::edge_descriptor(src, num_edges_orig);
-}
-#endif // BOOST_GRAPH_USE_OLD_CSR_INTERFACE
-
-#ifdef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
   // Add edges from a sorted (smallest sources first) range of pairs and edge
   // properties
   template <BOOST_DIR_CSR_GRAPH_TEMPLATE_PARMS, typename BidirectionalIteratorOrig,
@@ -1307,7 +1212,6 @@
             BOOST_DIR_CSR_GRAPH_TYPE& g) {
     g.add_edges_internal(first, last, ep_iter, ep_iter_end, global_to_local);
   }
-#endif // BOOST_GRAPH_USE_NEW_CSR_INTERFACE
 
 // From VertexListGraph
 template<BOOST_CSR_GRAPH_TEMPLATE_PARMS>
@@ -1340,21 +1244,6 @@
   return g.m_forward.m_column[e.idx];
 }
 
-namespace detail {
- template<BOOST_CSR_GRAPH_TEMPLATE_PARMS>
- inline EdgeIndex get_actual_row_start
- (const BOOST_CSR_GRAPH_TYPE& g,
- EdgeIndex rowstart_i_minus_1, EdgeIndex rowstart_i)
- {
-#ifdef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
- return rowstart_i;
-#else
- // Special case to allow incremental construction
- return (std::max)(rowstart_i_minus_1, rowstart_i);
-#endif
- }
-}
-
 template<BOOST_CSR_GRAPH_TEMPLATE_PARMS>
 inline std::pair<typename BOOST_CSR_GRAPH_TYPE::out_edge_iterator,
                  typename BOOST_CSR_GRAPH_TYPE::out_edge_iterator>
@@ -1365,8 +1254,7 @@
   EdgeIndex v_row_start = g.m_forward.m_rowstart[v];
   EdgeIndex next_row_start = g.m_forward.m_rowstart[v + 1];
   return std::make_pair(it(ed(v, v_row_start)),
- it(ed(v, detail::get_actual_row_start
- (g, v_row_start, next_row_start))));
+ it(ed(v, next_row_start)));
 }
 
 template<BOOST_CSR_GRAPH_TEMPLATE_PARMS>
@@ -1375,11 +1263,9 @@
 {
   EdgeIndex v_row_start = g.m_forward.m_rowstart[v];
   EdgeIndex next_row_start = g.m_forward.m_rowstart[v + 1];
- return detail::get_actual_row_start(g, v_row_start, next_row_start) - v_row_start;
+ return next_row_start - v_row_start;
 }
 
-#ifdef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
-
 template<BOOST_BIDIR_CSR_GRAPH_TEMPLATE_PARMS>
 inline std::pair<typename BOOST_BIDIR_CSR_GRAPH_TYPE::in_edge_iterator,
                  typename BOOST_BIDIR_CSR_GRAPH_TYPE::in_edge_iterator>
@@ -1402,8 +1288,6 @@
   return next_row_start - v_row_start;
 }
 
-#endif // BOOST_GRAPH_USE_NEW_CSR_INTERFACE
-
 // From AdjacencyGraph
 template<BOOST_CSR_GRAPH_TEMPLATE_PARMS>
 inline std::pair<typename BOOST_CSR_GRAPH_TYPE::adjacency_iterator,
@@ -1413,9 +1297,7 @@
   EdgeIndex v_row_start = g.m_forward.m_rowstart[v];
   EdgeIndex next_row_start = g.m_forward.m_rowstart[v + 1];
   return std::make_pair(g.m_forward.m_column.begin() + v_row_start,
- g.m_forward.m_column.begin() +
- detail::get_actual_row_start
- (g, v_row_start, next_row_start));
+ g.m_forward.m_column.begin() + next_row_start);
 }
 
 // Extra, common functions
@@ -1427,43 +1309,6 @@
   return i;
 }
 
-#ifdef BOOST_GRAPH_USE_OLD_CSR_INTERFACE
-// These require that the out edges from a vertex are sorted, which is only
-// guaranteed by the old interface
-
-// Unlike for an adjacency_matrix, edge_range and edge take lg(out_degree(i))
-// time
-template<BOOST_CSR_GRAPH_TEMPLATE_PARMS>
-inline std::pair<typename BOOST_CSR_GRAPH_TYPE::out_edge_iterator,
- typename BOOST_CSR_GRAPH_TYPE::out_edge_iterator>
-edge_range(Vertex i, Vertex j, const BOOST_CSR_GRAPH_TYPE& g)
-{
- typedef typename std::vector<Vertex>::const_iterator adj_iter;
- typedef typename BOOST_CSR_GRAPH_TYPE::out_edge_iterator out_edge_iter;
- typedef typename BOOST_CSR_GRAPH_TYPE::edge_descriptor edge_desc;
- std::pair<adj_iter, adj_iter> raw_adjacencies = adjacent_vertices(i, g);
- std::pair<adj_iter, adj_iter> adjacencies =
- std::equal_range(raw_adjacencies.first, raw_adjacencies.second, j);
- EdgeIndex idx_begin = adjacencies.first - g.m_forward.m_column.begin();
- EdgeIndex idx_end = adjacencies.second - g.m_forward.m_column.begin();
- return std::make_pair(out_edge_iter(edge_desc(i, idx_begin)),
- out_edge_iter(edge_desc(i, idx_end)));
-}
-
-template<BOOST_CSR_GRAPH_TEMPLATE_PARMS>
-inline std::pair<typename BOOST_CSR_GRAPH_TYPE::edge_descriptor, bool>
-edge(Vertex i, Vertex j, const BOOST_CSR_GRAPH_TYPE& g)
-{
- typedef typename BOOST_CSR_GRAPH_TYPE::out_edge_iterator out_edge_iter;
- std::pair<out_edge_iter, out_edge_iter> range = edge_range(i, j, g);
- if (range.first == range.second)
- return std::make_pair(typename BOOST_CSR_GRAPH_TYPE::edge_descriptor(),
- false);
- else
- return std::make_pair(*range.first, true);
-}
-
-#else // !BOOST_GRAPH_USE_OLD_CSR_INTERFACE
 // edge() can be provided in linear time for the new interface
 
 template<BOOST_CSR_GRAPH_TEMPLATE_PARMS>
@@ -1480,8 +1325,6 @@
                         false);
 }
 
-#endif // !BOOST_GRAPH_USE_OLD_CSR_INTERFACE
-
 // Find an edge given its index in the graph
 template<BOOST_CSR_GRAPH_TEMPLATE_PARMS>
 inline typename BOOST_CSR_GRAPH_TYPE::edge_descriptor
@@ -1491,14 +1334,7 @@
   assert (idx < num_edges(g));
   row_start_iter src_plus_1 =
     std::upper_bound(g.m_forward.m_rowstart.begin(),
-#ifdef BOOST_GRAPH_USE_OLD_CSR_INTERFACE
- // This handles the case where there are some vertices
- // with rowstart 0 after the last provided vertex; this
- // case does not happen with the new interface
- g.m_forward.m_rowstart.begin() + g.m_last_source + 1,
-#else // !BOOST_GRAPH_USE_OLD_CSR_INTERFACE
                      g.m_forward.m_rowstart.end(),
-#endif // BOOST_GRAPH_USE_OLD_CSR_INTERFACE
                      idx);
     // Get last source whose rowstart is at most idx
     // upper_bound returns this position plus 1

Modified: branches/release/boost/graph/core_numbers.hpp
==============================================================================
--- branches/release/boost/graph/core_numbers.hpp (original)
+++ branches/release/boost/graph/core_numbers.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -86,7 +86,7 @@
 
     template <class Visitors>
     core_numbers_visitor<Visitors> make_core_numbers_visitor(Visitors vis)
- { return core_numbers_visitor<Visitors>(vis); };
+ { return core_numbers_visitor<Visitors>(vis); }
 
     typedef core_numbers_visitor<> default_core_numbers_visitor;
 

Modified: branches/release/boost/graph/dag_shortest_paths.hpp
==============================================================================
--- branches/release/boost/graph/dag_shortest_paths.hpp (original)
+++ branches/release/boost/graph/dag_shortest_paths.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -83,7 +83,7 @@
     dag_sp_dispatch2
       (const VertexListGraph& g,
        typename graph_traits<VertexListGraph>::vertex_descriptor s,
- DistanceMap distance, WeightMap weight, ColorMap color, IndexMap id,
+ DistanceMap distance, WeightMap weight, ColorMap color, IndexMap /*id*/,
        DijkstraVisitor vis, const Params& params)
     {
       typedef typename property_traits<DistanceMap>::value_type D;

Modified: branches/release/boost/graph/depth_first_search.hpp
==============================================================================
--- branches/release/boost/graph/depth_first_search.hpp (original)
+++ branches/release/boost/graph/depth_first_search.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -193,7 +193,8 @@
 
     typename graph_traits<VertexListGraph>::vertex_iterator ui, ui_end;
     for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
- put(color, *ui, Color::white()); vis.initialize_vertex(*ui, g);
+ Vertex u = implicit_cast<Vertex>(*ui);
+ put(color, u, Color::white()); vis.initialize_vertex(u, g);
     }
 
     if (start_vertex != implicit_cast<Vertex>(*vertices(g).first)){ vis.start_vertex(start_vertex, g);
@@ -202,9 +203,10 @@
     }
 
     for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
- ColorValue u_color = get(color, *ui);
- if (u_color == Color::white()) { vis.start_vertex(*ui, g);
- detail::depth_first_visit_impl(g, *ui, vis, color, detail::nontruth2());
+ Vertex u = implicit_cast<Vertex>(*ui);
+ ColorValue u_color = get(color, u);
+ if (u_color == Color::white()) { vis.start_vertex(u, g);
+ detail::depth_first_visit_impl(g, u, vis, color, detail::nontruth2());
       }
     }
   }

Modified: branches/release/boost/graph/detail/adjacency_list.hpp
==============================================================================
--- branches/release/boost/graph/detail/adjacency_list.hpp (original)
+++ branches/release/boost/graph/detail/adjacency_list.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -1183,13 +1183,11 @@
                                 multisetS*)
       { return edge_range(source(e, g), target(e, g), g); }
 
-#if !defined BOOST_NO_HASH
       std::pair<out_edge_iterator, out_edge_iterator>
       get_parallel_edge_sublist(typename Config::edge_descriptor e,
                                 const graph_type& g,
                                 hash_setS*)
       { return edge_range(source(e, g), target(e, g), g); }
-#endif
 
       // Placement of these overloaded remove_edge() functions
       // inside the class avoids a VC++ bug.
@@ -2297,7 +2295,7 @@
         // VertexList and vertex_iterator
         typedef typename container_gen<VertexListS,
           vertex_ptr>::type SeqVertexList;
- typedef boost::integer_range<vertices_size_type> RandVertexList;
+ typedef boost::integer_range<vertex_descriptor> RandVertexList;
         typedef typename mpl::if_<is_rand_access,
           RandVertexList, SeqVertexList>::type VertexList;
 
@@ -2785,8 +2783,8 @@
 
 } // namespace boost
 
-#if !defined(BOOST_NO_HASH) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-namespace BOOST_STD_EXTENSION_NAMESPACE {
+#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+namespace boost {
 
   #if BOOST_WORKAROUND( _STLPORT_VERSION, >= 0x500 )
   // STLport 5 already defines a hash<void*> specialization.

Modified: branches/release/boost/graph/detail/compressed_sparse_row_struct.hpp
==============================================================================
--- branches/release/boost/graph/detail/compressed_sparse_row_struct.hpp (original)
+++ branches/release/boost/graph/detail/compressed_sparse_row_struct.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -81,17 +81,9 @@
 
     std::vector<EdgeIndex> m_rowstart;
     std::vector<Vertex> m_column;
-#ifdef BOOST_GRAPH_USE_OLD_CSR_INTERFACE
- // This member is only needed to support add_edge(), which is not provided by
- // the new interface
- Vertex m_last_source; // Last source of added edge, plus one
-#endif // BOOST_GRAPH_USE_OLD_CSR_INTERFACE
 
     compressed_sparse_row_structure(Vertex numverts = 0)
       : m_rowstart(numverts + 1, EdgeIndex(0)), m_column()
-#ifdef BOOST_GRAPH_USE_OLD_CSR_INTERFACE
- , m_last_source(numverts)
-#endif
       {}
     
     // Rebuild graph from number of vertices and multi-pass unsorted list of
@@ -251,7 +243,7 @@
         (sources.begin(), sources.end(), m_rowstart.begin(), numverts,
          keep_all(), boost::make_property_map_function(global_to_local));
       boost::graph::detail::histogram_sort_inplace
- (sources.begin(), sources.end(), m_rowstart.begin(), numverts,
+ (sources.begin(), m_rowstart.begin(), numverts,
          targets.begin(), boost::make_property_map_function(global_to_local));
       // Now targets is the correct vector (properly sorted by source) for
       // m_column
@@ -277,7 +269,7 @@
         (sources.begin(), sources.end(), m_rowstart.begin(), numverts,
          keep_all(), boost::make_property_map_function(global_to_local));
       boost::graph::detail::histogram_sort_inplace
- (sources.begin(), sources.end(), m_rowstart.begin(), numverts,
+ (sources.begin(), m_rowstart.begin(), numverts,
          targets.begin(), edge_props.begin(),
          boost::make_property_map_function(global_to_local));
       // Now targets is the correct vector (properly sorted by source) for
@@ -310,24 +302,12 @@
       for (Vertex i = 0; i != numverts; ++i) {
         m_rowstart[i] = current_edge;
         g_vertex v = ordered_verts_of_g[i];
-#ifdef BOOST_GRAPH_USE_OLD_CSR_INTERFACE
- // Out edges in a single vertex are only sorted for the old interface
- EdgeIndex num_edges_before_this_vertex = current_edge;
-#endif // BOOST_GRAPH_USE_OLD_CSR_INTERFACE
         g_out_edge_iter ei, ei_end;
         for (tie(ei, ei_end) = out_edges(v, g); ei != ei_end; ++ei) {
           m_column[current_edge++] = get(vi, target(*ei, g));
         }
-#ifdef BOOST_GRAPH_USE_OLD_CSR_INTERFACE
- // Out edges in a single vertex are only sorted for the old interface
- std::sort(m_column.begin() + num_edges_before_this_vertex,
- m_column.begin() + current_edge);
-#endif // BOOST_GRAPH_USE_OLD_CSR_INTERFACE
       }
       m_rowstart[numverts] = current_edge;
-#ifdef BOOST_GRAPH_USE_OLD_CSR_INTERFACE
- m_last_source = numverts;
-#endif // BOOST_GRAPH_USE_OLD_CSR_INTERFACE
     }
 
     // Add edges from a sorted (smallest sources first) range of pairs and edge

Modified: branches/release/boost/graph/detail/histogram_sort.hpp
==============================================================================
--- branches/release/boost/graph/detail/histogram_sort.hpp (original)
+++ branches/release/boost/graph/detail/histogram_sort.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -148,7 +148,7 @@
           typename Value1Iter,
           typename KeyTransform>
 void
-histogram_sort_inplace(KeyIterator key_begin, KeyIterator key_end,
+histogram_sort_inplace(KeyIterator key_begin,
                        RowstartIterator rowstart, // Must support numkeys + 1 elements and be precomputed
                        NumKeys numkeys,
                        Value1Iter values1,
@@ -181,7 +181,7 @@
           typename Value2Iter,
           typename KeyTransform>
 void
-histogram_sort_inplace(KeyIterator key_begin, KeyIterator key_end,
+histogram_sort_inplace(KeyIterator key_begin,
                        RowstartIterator rowstart, // Must support numkeys + 1 elements and be precomputed
                        NumKeys numkeys,
                        Value1Iter values1,

Modified: branches/release/boost/graph/distributed/adjacency_list.hpp
==============================================================================
--- branches/release/boost/graph/distributed/adjacency_list.hpp (original)
+++ branches/release/boost/graph/distributed/adjacency_list.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -395,9 +395,9 @@
         typedef typename Graph::directed_selector DirectedS;
 
       public:
- typedef typename ct_if<(is_same<DirectedS, bidirectionalS>::value),
- stored_in_edge<Edge>,
- Edge>::type argument_type;
+ typedef typename boost::mpl::if_<is_same<DirectedS, bidirectionalS>,
+ stored_in_edge<Edge>,
+ Edge>::type argument_type;
         typedef edge_descriptor<Edge> result_type;
 
         in_generator() : g(0) {}
@@ -580,10 +580,10 @@
                        EdgeProperty> edge_property_with_id;
 
       /// For undirected graphs, introduce the locally-owned property for edges
- typedef typename ct_if<(is_same<DirectedS, undirectedS>::value),
- property<edge_locally_owned_t, bool,
- edge_property_with_id>,
- edge_property_with_id>::type
+ typedef typename boost::mpl::if_<is_same<DirectedS, undirectedS>,
+ property<edge_locally_owned_t, bool,
+ edge_property_with_id>,
+ edge_property_with_id>::type
         base_edge_property_type;
 
       /// The edge descriptor type for the local subgraph
@@ -602,10 +602,10 @@
 
       // Bidirectional graphs have an extra vertex property to store
       // the incoming edges.
- typedef typename ct_if<(is_same<DirectedS, bidirectionalS>::value),
- property<vertex_in_edges_t, in_edge_list_type,
- VertexProperty>,
- VertexProperty>::type
+ typedef typename boost::mpl::if_<is_same<DirectedS, bidirectionalS>,
+ property<vertex_in_edges_t, in_edge_list_type,
+ VertexProperty>,
+ VertexProperty>::type
         base_vertex_property_type;
 
       // The type of the distributed adjacency list
@@ -1097,9 +1097,9 @@
     typedef typename base_type::vertex_descriptor local_vertex_descriptor;
     typedef typename base_type::edge_descriptor local_edge_descriptor;
 
- typedef typename boost::ct_if_t<typename DirectedS::is_bidir_t,
+ typedef typename boost::mpl::if_<typename DirectedS::is_bidir_t,
       bidirectional_tag,
- typename boost::ct_if_t<typename DirectedS::is_directed_t,
+ typename boost::mpl::if_<typename DirectedS::is_directed_t,
         directed_tag, undirected_tag
>::type
>::type directed_category;
@@ -1355,12 +1355,12 @@
      * are restricted; see the distributed adjacency_list
      * documentation.
      */
- typedef typename ct_if<
- (is_same<DirectedS, directedS>::value),
+ typedef typename boost::mpl::if_<
+ is_same<DirectedS, directedS>,
               directed_distributed_adj_list_tag,
- typename ct_if<(is_same<DirectedS, bidirectionalS>::value),
- bidirectional_distributed_adj_list_tag,
- undirected_distributed_adj_list_tag>::type>
+ typename boost::mpl::if_<is_same<DirectedS, bidirectionalS>,
+ bidirectional_distributed_adj_list_tag,
+ undirected_distributed_adj_list_tag>::type>
       ::type traversal_category;
 
     typedef typename inherited::degree_size_type degree_size_type;
@@ -1376,9 +1376,9 @@
       local_edge_list_type;
 
   private:
- typedef typename ct_if<(is_same<DirectedS, bidirectionalS>::value),
- typename in_edge_list_type::const_iterator,
- typename inherited::out_edge_iterator>::type
+ typedef typename boost::mpl::if_<is_same<DirectedS, bidirectionalS>,
+ typename in_edge_list_type::const_iterator,
+ typename inherited::out_edge_iterator>::type
       base_in_edge_iterator;
 
     typedef typename inherited::out_edge_iterator base_out_edge_iterator;
@@ -1424,11 +1424,11 @@
       adjacency_iterator;
 
     /// Iterator over the (local) edges in a graph
- typedef typename ct_if<(is_same<DirectedS, undirectedS>::value),
- undirected_edge_iterator,
- transform_iterator<out_edge_generator,
- base_edge_iterator>
- >::type
+ typedef typename boost::mpl::if_<is_same<DirectedS, undirectedS>,
+ undirected_edge_iterator,
+ transform_iterator<out_edge_generator,
+ base_edge_iterator>
+ >::type
       edge_iterator;
 
   public:

Modified: branches/release/boost/graph/distributed/betweenness_centrality.hpp
==============================================================================
--- branches/release/boost/graph/distributed/betweenness_centrality.hpp (original)
+++ branches/release/boost/graph/distributed/betweenness_centrality.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -71,10 +71,10 @@
                    boost::tuple<T1,T2,T3, T4>& t,
                    const unsigned int)
     {
- ar & get<0>(t);
- ar & get<1>(t);
- ar & get<2>(t);
- ar & get<3>(t);
+ ar & boost::tuples::get<0>(t);
+ ar & boost::tuples::get<1>(t);
+ ar & boost::tuples::get<2>(t);
+ ar & boost::tuples::get<3>(t);
     }
 
   } // serialization
@@ -87,7 +87,7 @@
     
     get_owner_of_first_tuple_element(OwnerMap owner) : owner(owner) { }
 
- owner_type get_owner(Tuple t) { return get(owner, get<0>(t)); }
+ owner_type get_owner(Tuple t) { return get(owner, boost::tuples::get<0>(t)); }
 
   private:
     OwnerMap owner;
@@ -911,10 +911,10 @@
     while(!Q.empty()) {
 
       queue_value_type x = Q.top(); Q.pop();
- vertex_descriptor w = get<0>(x);
- vertex_descriptor source = get<1>(x);
- dependency_type dep = get<2>(x);
- path_count_type pc = get<3>(x);
+ vertex_descriptor w = boost::tuples::get<0>(x);
+ vertex_descriptor source = boost::tuples::get<1>(x);
+ dependency_type dep = boost::tuples::get<2>(x);
+ path_count_type pc = boost::tuples::get<3>(x);
 
       cache(dependency, source, dep);
       cache(path_count, source, pc);

Modified: branches/release/boost/graph/distributed/compressed_sparse_row_graph.hpp
==============================================================================
--- branches/release/boost/graph/distributed/compressed_sparse_row_graph.hpp (original)
+++ branches/release/boost/graph/distributed/compressed_sparse_row_graph.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -17,8 +17,6 @@
 #error "Parallel BGL files should not be included unless <boost/graph/use_mpi.hpp> has been included"
 #endif
 
-#define BOOST_GRAPH_USE_NEW_CSR_INTERFACE
-
 #include <boost/graph/compressed_sparse_row_graph.hpp>
 #include <boost/graph/distributed/selector.hpp>
 #include <boost/mpl/if.hpp>
@@ -179,8 +177,6 @@
                               const Distribution& dist)
     : m_process_group(pg), m_distribution(dist), m_base(numverts) {}
 
-#ifdef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
-
   template <typename InputIterator>
   compressed_sparse_row_graph(edges_are_unsorted_t,
                               InputIterator edge_begin, InputIterator edge_end,
@@ -322,8 +318,6 @@
                               const Distribution& dist,
                               const GraphProperty& prop = GraphProperty());
 
-#endif
-
   template<typename InputIterator>
   compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
                               vertices_size_type numverts,
@@ -706,7 +700,6 @@
 // -----------------------------------------------------------------
 // Graph constructors
 
-#ifdef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
 // Returns true if a vertex belongs to a process according to a distribution
 template <typename OwnerMap, typename ProcessId>
 struct local_vertex {
@@ -826,13 +819,10 @@
   return boost::make_transform_iterator(
     it, index_to_vertex_func<Distribution, Graph>(dist, g));
 }
-#endif
 
 // Forward declaration of csr_vertex_owner_map
 template<typename ProcessID, typename Key> class csr_vertex_owner_map;
 
-#ifdef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
-
 template<BOOST_DISTRIB_CSR_GRAPH_TEMPLATE_PARMS>
 template<typename InputIterator>
 BOOST_DISTRIB_CSR_GRAPH_TYPE::
@@ -1215,8 +1205,6 @@
   // TODO: set property on m_base?
 }
 
-#endif
-
 //
 // Old (untagged) ctors, these default to the unsorted sequential ctors
 //
@@ -1229,9 +1217,6 @@
                             const GraphProperty& prop)
   : m_process_group(pg),
     m_distribution(parallel::block(m_process_group, numverts)),
-#ifndef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
- m_base(m_distribution.block_size(process_id(m_process_group), numverts))
-#else
     m_base(edges_are_unsorted_global,
            index_to_vertex_iterator<InputIterator, BOOST_DISTRIB_CSR_GRAPH_TYPE>(edge_begin, *this),
            index_to_vertex_iterator<InputIterator, BOOST_DISTRIB_CSR_GRAPH_TYPE>(edge_end, *this),
@@ -1240,28 +1225,8 @@
            local_vertex<csr_vertex_owner_map<process_id_type, vertex_descriptor>,
                         process_id_type> (get(vertex_owner, *this), process_id(pg)),
            prop)
-#endif
            
 {
-#ifndef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
- parallel::block dist(m_process_group, numverts);
-
- // Allows us to add edges
- m_base.m_last_source = 0;
-
- typename ProcessGroup::process_id_type id = process_id(m_process_group);
-
- while (edge_begin != edge_end) {
- vertex_descriptor src = edge_begin->first;
- if (static_cast<process_id_type>(dist(src)) == id) {
- vertex_descriptor tgt =
- make_vertex_descriptor(dist(edge_begin->second),
- dist.local(edge_begin->second));
- add_edge(dist.local(src), tgt, m_base);
- }
- ++edge_begin;
- }
-#endif
 }
 
 template<BOOST_DISTRIB_CSR_GRAPH_TEMPLATE_PARMS>
@@ -1275,9 +1240,6 @@
   : m_process_group(pg),
 
     m_distribution(parallel::block(m_process_group, numverts)),
-#ifndef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
- m_base(m_distribution.block_size(process_id(m_process_group), numverts))
-#else
     m_base(edges_are_unsorted_global,
            index_to_vertex_iterator<InputIterator, BOOST_DISTRIB_CSR_GRAPH_TYPE>(edge_begin, *this),
            index_to_vertex_iterator<InputIterator, BOOST_DISTRIB_CSR_GRAPH_TYPE>(edge_end, *this),
@@ -1287,28 +1249,7 @@
            local_vertex<csr_vertex_owner_map<process_id_type, vertex_descriptor>,
                         process_id_type> (get(vertex_owner, *this), process_id(pg)),
            prop)
-#endif
 {
-#ifndef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
- parallel::block dist(m_process_group, numverts);
-
- // Allows us to add edges
- m_base.m_last_source = 0;
-
- typename ProcessGroup::process_id_type id = process_id(m_process_group);
-
- while (edge_begin != edge_end) {
- EdgeIndex src = edge_begin->first;
- if (static_cast<process_id_type>(dist(src)) == id) {
- EdgeIndex tgt =
- make_vertex_descriptor(dist(edge_begin->second),
- dist.local(edge_begin->second));
- add_edge(dist.local(src), tgt, *ep_iter, m_base);
- }
- ++edge_begin;
- ++ep_iter;
- }
-#endif
 }
 
 template<BOOST_DISTRIB_CSR_GRAPH_TEMPLATE_PARMS>
@@ -1321,9 +1262,6 @@
                             const GraphProperty& prop)
   : m_process_group(pg),
     m_distribution(dist),
-#ifndef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
- m_base(dist.block_size(process_id(m_process_group), numverts))
-#else
     m_base(edges_are_unsorted_global,
            index_to_vertex_iterator<InputIterator, BOOST_DISTRIB_CSR_GRAPH_TYPE>(edge_begin, *this),
            index_to_vertex_iterator<InputIterator, BOOST_DISTRIB_CSR_GRAPH_TYPE>(edge_end, *this),
@@ -1332,27 +1270,7 @@
            local_vertex<csr_vertex_owner_map<process_id_type, vertex_descriptor>,
                         process_id_type> (get(vertex_owner, *this), process_id(pg)),
            prop)
-#endif
 {
-#ifndef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
- // Allows us to add edges
- m_base.m_last_source = 0;
-
- typename ProcessGroup::process_id_type id = process_id(m_process_group);
-
- while (edge_begin != edge_end) {
- vertex_descriptor src = edge_begin->first;
- if (static_cast<process_id_type>(dist(src)) == id) {
- vertex_descriptor tgt =
- make_vertex_descriptor(dist(edge_begin->second),
- dist.local(edge_begin->second));
- assert(get(vertex_owner, *this, tgt) == dist(edge_begin->second));
- assert(get(vertex_local, *this, tgt) == dist.local(edge_begin->second));
- add_edge(dist.local(src), tgt, m_base);
- }
- ++edge_begin;
- }
-#endif
 }
 
 template<BOOST_DISTRIB_CSR_GRAPH_TEMPLATE_PARMS>
@@ -1367,9 +1285,6 @@
                             const GraphProperty& prop)
   : m_process_group(pg),
     m_distribution(dist),
-#ifndef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
- m_base(dist.block_size(process_id(m_process_group), numverts))
-#else
     m_base(edges_are_unsorted_global,
            index_to_vertex_iterator<InputIterator, BOOST_DISTRIB_CSR_GRAPH_TYPE>(edge_begin, *this),
            index_to_vertex_iterator<InputIterator, BOOST_DISTRIB_CSR_GRAPH_TYPE>(edge_end, *this),
@@ -1378,26 +1293,7 @@
            local_vertex<csr_vertex_owner_map<process_id_type, vertex_descriptor>,
                         process_id_type> (get(vertex_owner, *this), process_id(pg)),
            prop)
-#endif
 {
-#ifndef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
- // Allows us to add edges
- m_base.m_last_source = 0;
-
- typename ProcessGroup::process_id_type id = process_id(m_process_group);
-
- while (edge_begin != edge_end) {
- EdgeIndex src = edge_begin->first;
- if (static_cast<process_id_type>(dist(src)) == id) {
- EdgeIndex tgt =
- make_vertex_descriptor(dist(edge_begin->second),
- dist.local(edge_begin->second));
- add_edge(dist.local(src), tgt, *ep_iter, m_base);
- }
- ++edge_begin;
- ++ep_iter;
- }
-#endif
 }
 
 // -----------------------------------------------------------------

Modified: branches/release/boost/graph/distributed/detail/mpi_process_group.ipp
==============================================================================
--- branches/release/boost/graph/distributed/detail/mpi_process_group.ipp (original)
+++ branches/release/boost/graph/distributed/detail/mpi_process_group.ipp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -28,6 +28,7 @@
 #include <queue>
 #include <stack>
 #include <boost/graph/distributed/detail/tag_allocator.hpp>
+#include <stdio.h>
 
 // #define PBGL_PROCESS_GROUP_DEBUG
 

Modified: branches/release/boost/graph/dominator_tree.hpp
==============================================================================
--- branches/release/boost/graph/dominator_tree.hpp (original)
+++ branches/release/boost/graph/dominator_tree.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -236,7 +236,7 @@
   lengauer_tarjan_dominator_tree_without_dfs
     (const Graph& g,
      const typename graph_traits<Graph>::vertex_descriptor& entry,
- const IndexMap& indexMap,
+ const IndexMap& /*indexMap*/,
      TimeMap dfnumMap, PredMap parentMap, VertexVector& verticesByDFNum,
      DomTreePredMap domTreePredMap)
   {

Modified: branches/release/boost/graph/filtered_graph.hpp
==============================================================================
--- branches/release/boost/graph/filtered_graph.hpp (original)
+++ branches/release/boost/graph/filtered_graph.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -192,8 +192,6 @@
> edge_iterator;
     typedef typename Traits::edges_size_type edges_size_type;
 
- typedef typename ::boost::edge_property_type<Graph>::type edge_property_type;
- typedef typename ::boost::vertex_property_type<Graph>::type vertex_property_type;
     typedef filtered_graph_tag graph_tag;
 
 #ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
@@ -219,6 +217,22 @@
     VertexPredicate m_vertex_pred;
   };
 
+ // Do not instantiate these unless needed
+ template <typename Graph,
+ typename EdgePredicate,
+ typename VertexPredicate>
+ struct vertex_property_type<filtered_graph<Graph, EdgePredicate, VertexPredicate> > {
+ typedef typename vertex_property_type<Graph>::type type;
+ };
+
+ template <typename Graph,
+ typename EdgePredicate,
+ typename VertexPredicate>
+ struct edge_property_type<filtered_graph<Graph, EdgePredicate, VertexPredicate> > {
+ typedef typename edge_property_type<Graph>::type type;
+ };
+
+
 #ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
   template<typename Graph, typename EdgePredicate, typename VertexPredicate>
   struct vertex_bundle_type<filtered_graph<Graph, EdgePredicate,

Modified: branches/release/boost/graph/floyd_warshall_shortest.hpp
==============================================================================
--- branches/release/boost/graph/floyd_warshall_shortest.hpp (original)
+++ branches/release/boost/graph/floyd_warshall_shortest.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -159,7 +159,7 @@
     template <class VertexListGraph, class DistanceMatrix,
       class WeightMap, class P, class T, class R>
     bool floyd_warshall_init_dispatch(const VertexListGraph& g,
- DistanceMatrix& d, WeightMap w,
+ DistanceMatrix& d, WeightMap /*w*/,
       const bgl_named_params<P, T, R>& params)
     {
       typedef typename property_traits<WeightMap>::value_type WM;

Modified: branches/release/boost/graph/geodesic_distance.hpp
==============================================================================
--- branches/release/boost/graph/geodesic_distance.hpp (original)
+++ branches/release/boost/graph/geodesic_distance.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -83,7 +83,7 @@
 
 template <typename Graph, typename DistanceMap>
 inline mean_graph_distance_measure<Graph, typename property_traits<DistanceMap>::value_type>
-measure_graph_mean_geodesic(const Graph& g, DistanceMap dist)
+measure_graph_mean_geodesic(const Graph&, DistanceMap)
 {
     typedef typename property_traits<DistanceMap>::value_type T;
     return mean_graph_distance_measure<Graph, T>();

Modified: branches/release/boost/graph/graph_traits.hpp
==============================================================================
--- branches/release/boost/graph/graph_traits.hpp (original)
+++ branches/release/boost/graph/graph_traits.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -181,6 +181,16 @@
>::value
>
     { };
+
+ template <typename Graph>
+ struct is_adjacency_matrix
+ : mpl::bool_<
+ is_convertible<
+ typename graph_traits<Graph>::traversal_category,
+ adjacency_matrix_tag
+ >::value
+ >
+ { };
     //@}
 
     /** @name Directed Graph Traits

Modified: branches/release/boost/graph/graphml.hpp
==============================================================================
--- branches/release/boost/graph/graphml.hpp (original)
+++ branches/release/boost/graph/graphml.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -16,70 +16,20 @@
 #include <boost/lexical_cast.hpp>
 #include <boost/any.hpp>
 #include <boost/type_traits/is_convertible.hpp>
+#include <boost/graph/dll_import_export.hpp>
 #include <boost/graph/graphviz.hpp> // for exceptions
 #include <typeinfo>
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/vector.hpp>
 #include <boost/mpl/find.hpp>
 #include <boost/mpl/for_each.hpp>
-#if 0 // Change this back later
 #include <boost/property_tree/detail/xml_parser_utils.hpp>
-#endif
 #include <exception>
 #include <sstream>
 
 namespace boost
 {
 
- // FIXME: Remove this once property_tree is stable
- namespace graph_detail_from_property_tree {
-
-// ----------------------------------------------------------------------------
-// Copyright (C) 2002-2006 Marcin Kalicinski
-//
-// Distributed under 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)
-//
-// For more information, see www.boost.org
-// ----------------------------------------------------------------------------
-
- // Naively convert narrow string to another character type
- template<class Ch>
- std::basic_string<Ch> widen(const char *text)
- {
- std::basic_string<Ch> result;
- while (*text)
- {
- result += Ch(*text);
- ++text;
- }
- return result;
- }
-
- template<class Ch>
- std::basic_string<Ch> encode_char_entities(const std::basic_string<Ch> &s)
- {
- typedef typename std::basic_string<Ch> Str;
- Str r;
- typename Str::const_iterator end = s.end();
- for (typename Str::const_iterator it = s.begin(); it != end; ++it)
- {
- switch (*it)
- {
- case Ch('<'): r += boost::graph_detail_from_property_tree::widen<Ch>("&lt;"); break;
- case Ch('>'): r += boost::graph_detail_from_property_tree::widen<Ch>("&gt;"); break;
- case Ch('&'): r += boost::graph_detail_from_property_tree::widen<Ch>("&amp;"); break;
- case Ch('"'): r += boost::graph_detail_from_property_tree::widen<Ch>("&quot;"); break;
- case Ch('\''): r += boost::graph_detail_from_property_tree::widen<Ch>("&apos;"); break;
- default: r += *it; break;
- }
- }
- return r;
- }
-
- }
-
 /////////////////////////////////////////////////////////////////////////////
 // Graph reader exceptions
 /////////////////////////////////////////////////////////////////////////////
@@ -279,8 +229,7 @@
     typedef typename graph_traits<Graph>::edge_descriptor edge_descriptor;
     typedef typename graph_traits<Graph>::vertex_descriptor vertex_descriptor;
 
- // using boost::property_tree::xml_parser::encode_char_entities;
- using boost::graph_detail_from_property_tree::encode_char_entities;
+ using boost::property_tree::xml_parser::encode_char_entities;
 
     BOOST_STATIC_CONSTANT(bool,
                           graph_is_directed =

Modified: branches/release/boost/graph/graphviz.hpp
==============================================================================
--- branches/release/boost/graph/graphviz.hpp (original)
+++ branches/release/boost/graph/graphviz.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -24,20 +24,7 @@
 #include <boost/graph/adjacency_list.hpp>
 #include <boost/property_map/dynamic_property_map.hpp>
 #include <boost/graph/overloading.hpp>
-
-#ifdef BOOST_HAS_DECLSPEC
-# if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_GRAPH_DYN_LINK)
-# ifdef BOOST_GRAPH_SOURCE
-# define BOOST_GRAPH_DECL __declspec(dllexport)
-# else
-# define BOOST_GRAPH_DECL __declspec(dllimport)
-# endif // BOOST_GRAPH_SOURCE
-# endif // DYN_LINK
-#endif // BOOST_HAS_DECLSPEC
-
-#ifndef BOOST_GRAPH_DECL
-# define BOOST_GRAPH_DECL
-#endif
+#include <boost/graph/dll_import_export.hpp>
 
 namespace boost {
 

Modified: branches/release/boost/graph/grid_graph.hpp
==============================================================================
--- branches/release/boost/graph/grid_graph.hpp (original)
+++ branches/release/boost/graph/grid_graph.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -208,7 +208,7 @@
       const Graph* m_graph;
     };
 
- }; // namespace detail
+ } // namespace detail
 
   //===========
   // Grid Graph

Modified: branches/release/boost/graph/howard_cycle_ratio.hpp
==============================================================================
--- branches/release/boost/graph/howard_cycle_ratio.hpp (original)
+++ branches/release/boost/graph/howard_cycle_ratio.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -173,8 +173,8 @@
       virtual ~mcr_howard() {}
 
     protected:
- virtual void store_critical_edge(edge_t ed, critical_cycle_t &cc) {}
- virtual void store_critical_cycle(critical_cycle_t &cc) {}
+ virtual void store_critical_edge(edge_t, critical_cycle_t &) {}
+ virtual void store_critical_cycle(critical_cycle_t &) {}
 
     private:
       /*!
@@ -216,10 +216,10 @@
             tie(oei, oeie) = out_edges(*vi, m_g);
             typename graph_traits<Graph>::out_edge_iterator mei =
               std::max_element(oei, oeie,
- bind(m_cmp,
- bind(&EdgeWeight1::operator[], m_ew1m, _1),
- bind(&EdgeWeight1::operator[], m_ew1m, _2)
- )
+ boost::bind(m_cmp,
+ boost::bind(&EdgeWeight1::operator[], m_ew1m, _1),
+ boost::bind(&EdgeWeight1::operator[], m_ew1m, _2)
+ )
                                );
             if (mei == oeie)
               {
@@ -334,10 +334,10 @@
         tie(uv_itr, vie) = vertices(m_g);
         float_t mcr = m_bound;
         while ( (uv_itr = std::find_if(uv_itr, vie,
- bind(std::equal_to<my_color_type>(),
- my_white,
- bind(&color_map_t::operator[], vcm_, _1)
- )
+ boost::bind(std::equal_to<my_color_type>(),
+ my_white,
+ boost::bind(&color_map_t::operator[], vcm_, _1)
+ )
                                        )
                  ) != vie )
           ///While there are undiscovered vertices

Modified: branches/release/boost/graph/is_straight_line_drawing.hpp
==============================================================================
--- branches/release/boost/graph/is_straight_line_drawing.hpp (original)
+++ branches/release/boost/graph/is_straight_line_drawing.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -100,7 +100,7 @@
>
   bool is_straight_line_drawing(const Graph& g,
                                 GridPositionMap drawing,
- VertexIndexMap vm
+ VertexIndexMap
                                 )
   {
 

Modified: branches/release/boost/graph/isomorphism.hpp
==============================================================================
--- branches/release/boost/graph/isomorphism.hpp (original)
+++ branches/release/boost/graph/isomorphism.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -90,7 +90,7 @@
         void discover_vertex(vertex1_t v, const Graph1&) const {
           vertices.push_back(v);
         }
- void examine_edge(edge1_t e, const Graph1& G1) const {
+ void examine_edge(edge1_t e, const Graph1&) const {
           edges.push_back(e);
         }
         std::vector<vertex1_t>& vertices;

Modified: branches/release/boost/graph/kolmogorov_max_flow.hpp
==============================================================================
--- branches/release/boost/graph/kolmogorov_max_flow.hpp (original)
+++ branches/release/boost/graph/kolmogorov_max_flow.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -46,6 +46,7 @@
 #include <boost/none_t.hpp>
 #include <boost/graph/graph_concepts.hpp>
 #include <boost/graph/named_function_params.hpp>
+#include <boost/graph/lookup_edge.hpp>
 
 namespace boost {
   namespace detail {
@@ -161,7 +162,7 @@
               }
               edge_descriptor to_sink;
               bool is_there;
- tie(to_sink, is_there) = edge(current_node, m_sink, m_g);
+ tie(to_sink, is_there) = lookup_edge(current_node, m_sink, m_g);
               if(is_there){
                 tEdgeVal cap_from_source = m_res_cap_map[from_source];
                 tEdgeVal cap_to_sink = m_res_cap_map[to_sink];

Modified: branches/release/boost/graph/labeled_graph.hpp
==============================================================================
--- branches/release/boost/graph/labeled_graph.hpp (original)
+++ branches/release/boost/graph/labeled_graph.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -72,7 +72,6 @@
     struct generate_label_map<multimapS, Label, Vertex>
     { typedef std::multimap<Label, Vertex> type; };
 
-#if !defined BOOST_NO_HASH
     template <typename Label, typename Vertex>
     struct generate_label_map<hash_mapS, Label, Vertex>
     { typedef boost::unordered_map<Label, Vertex> type; };
@@ -80,7 +79,7 @@
     template <typename Label, typename Vertex>
     struct generate_label_map<hash_multimapS, Label, Vertex>
     { typedef boost::unordered_multimap<Label, Vertex> type; };
-#endif
+
     template <typename Selector, typename Label, typename Vertex>
     struct choose_custom_map {
         typedef typename generate_label_map<Selector, Label, Vertex>::type type;
@@ -141,7 +140,7 @@
     // Tag dispatch on unique associative containers (i.e. maps).
     template <typename Container, typename Graph, typename Label, typename Prop>
     std::pair<typename graph_traits<Graph>::vertex_descriptor, bool>
- insert_labeled_vertex(Container& c, Graph& g, Label const& l, Prop const& p,
+ insert_labeled_vertex(Container& c, Graph& g, Label const& l, Prop const&,
                           unique_associative_container_tag)
     {
         // Here, we actually have to try the insertion first, and only add

Copied: branches/release/boost/graph/lookup_edge.hpp (from r57928, /trunk/boost/graph/lookup_edge.hpp)
==============================================================================
--- /trunk/boost/graph/lookup_edge.hpp (original)
+++ branches/release/boost/graph/lookup_edge.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -46,3 +46,5 @@
   }
 
 }
+
+#endif // BOOST_GRAPH_LOOKUP_EDGE_HPP

Modified: branches/release/boost/graph/max_cardinality_matching.hpp
==============================================================================
--- branches/release/boost/graph/max_cardinality_matching.hpp (original)
+++ branches/release/boost/graph/max_cardinality_matching.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -67,7 +67,7 @@
 
 
   template <typename Graph, typename MateMap, typename VertexIndexMap>
- bool is_a_matching(const Graph& g, MateMap mate, VertexIndexMap vm)
+ bool is_a_matching(const Graph& g, MateMap mate, VertexIndexMap)
   {
     typedef typename graph_traits<Graph>::vertex_descriptor
       vertex_descriptor_t;
@@ -106,13 +106,13 @@
             typename VertexIndexMap = dummy_property_map>
   struct no_augmenting_path_finder
   {
- no_augmenting_path_finder(const Graph& g, MateMap mate, VertexIndexMap vm)
+ no_augmenting_path_finder(const Graph&, MateMap, VertexIndexMap)
     { }
 
     inline bool augment_matching() { return false; }
 
     template <typename PropertyMap>
- void get_current_matching(PropertyMap p) {}
+ void get_current_matching(PropertyMap) {}
   };
 
 
@@ -673,13 +673,13 @@
       }
       
       template <class Vertex, class Graph>
- void start_vertex(Vertex v, Graph&)
+ void start_vertex(Vertex, Graph&)
       {
         m_parity = false;
       }
       
       template <class Vertex, class Graph>
- void discover_vertex(Vertex u, Graph&)
+ void discover_vertex(Vertex, Graph&)
       {
         m_parity = !m_parity;
         m_parity ? ++m_count : --m_count;
@@ -703,7 +703,7 @@
   struct no_matching_verifier
   {
     inline static bool
- verify_matching(const Graph& g, MateMap mate, VertexIndexMap vm)
+ verify_matching(const Graph&, MateMap, VertexIndexMap)
     { return true;}
   };
   

Modified: branches/release/boost/graph/mcgregor_common_subgraphs.hpp
==============================================================================
--- branches/release/boost/graph/mcgregor_common_subgraphs.hpp (original)
+++ branches/release/boost/graph/mcgregor_common_subgraphs.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -89,7 +89,7 @@
   
     template <typename ItemFirst,
               typename ItemSecond>
- bool operator()(const ItemFirst& item1, const ItemSecond& item2) {
+ bool operator()(const ItemFirst&, const ItemSecond&) {
       return (true);
     }
   };
@@ -113,7 +113,7 @@
     (const GraphFirst& graph1,
      const GraphSecond& graph2,
      CorrespondenceMapFirstToSecond correspondence_map_1_to_2,
- CorrespondenceMapSecondToFirst correspondence_map_2_to_1,
+ CorrespondenceMapSecondToFirst /*correspondence_map_2_to_1*/,
      typename graph_traits<GraphFirst>::vertices_size_type subgraph_size,
      typename graph_traits<GraphFirst>::vertex_descriptor new_vertex1,
      typename graph_traits<GraphSecond>::vertex_descriptor new_vertex2,

Modified: branches/release/boost/graph/metric_tsp_approx.hpp
==============================================================================
--- branches/release/boost/graph/metric_tsp_approx.hpp (original)
+++ branches/release/boost/graph/metric_tsp_approx.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -34,6 +34,7 @@
 #include <boost/graph/graph_as_tree.hpp>
 #include <boost/graph/adjacency_list.hpp>
 #include <boost/graph/prim_minimum_spanning_tree.hpp>
+#include <boost/graph/lookup_edge.hpp>
 
 
 namespace boost
@@ -68,11 +69,11 @@
 
         PreorderTraverser(std::vector<Node>& p) : path_(p) {}
 
- void preorder(Node n, const Tree& t)
+ void preorder(Node n, const Tree&)
         { path_.push_back(n); }
 
- void inorder(Node n, const Tree& t) const {}
- void postorder(Node, const Tree& t) const {}
+ void inorder(Node, const Tree&) const {}
+ void postorder(Node, const Tree&) const {}
 
         const_iterator begin() const { return path_.begin(); }
         const_iterator end() const { return path_.end(); }
@@ -241,7 +242,7 @@
         { }
 
         template <typename Vertex, typename Graph>
- void visit_vertex(Vertex v, const Graph& g)
+ void visit_vertex(Vertex v, const Graph&)
         {
             BOOST_CONCEPT_ASSERT((OutputIterator<OutItr, Vertex>));
             *itr_++ = v;
@@ -284,7 +285,7 @@
                 // would require revisiting the core algorithm.
                 Edge e;
                 bool found;
- tie(e, found) = edge(previous_, v, g);
+ tie(e, found) = lookup_edge(previous_, v, g);
                 if(!found) {
                     throw not_complete();
                 }

Modified: branches/release/boost/graph/named_function_params.hpp
==============================================================================
--- branches/release/boost/graph/named_function_params.hpp (original)
+++ branches/release/boost/graph/named_function_params.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -383,13 +383,13 @@
     template <typename ArgType, typename Prop, typename Graph, bool Exists>
     struct override_const_property_t {
       typedef ArgType result_type;
- result_type operator()(const Graph& g, const typename boost::add_reference<ArgType>::type a) const {return a;}
+ result_type operator()(const Graph&, const typename boost::add_reference<ArgType>::type a) const {return a;}
     };
 
     template <typename ArgType, typename Prop, typename Graph>
     struct override_const_property_t<ArgType, Prop, Graph, false> {
       typedef typename boost::property_map<Graph, Prop>::const_type result_type;
- result_type operator()(const Graph& g, const ArgType& a) const {return get(Prop(), g);}
+ result_type operator()(const Graph& g, const ArgType&) const {return get(Prop(), g);}
     };
 
     template <typename ArgPack, typename Tag, typename Prop, typename Graph>
@@ -399,7 +399,7 @@
                Graph,
                boost::detail::parameter_exists<ArgPack, Tag>::value
>::result_type
- override_const_property(const ArgPack& ap, const boost::parameter::keyword<Tag>& t, const Graph& g, Prop prop) {
+ override_const_property(const ArgPack& ap, const boost::parameter::keyword<Tag>& t, const Graph& g, Prop) {
     return override_const_property_t<
              typename boost::parameter::value_type<ArgPack, Tag, int>::type,
              Prop,

Modified: branches/release/boost/graph/planar_detail/boyer_myrvold_impl.hpp
==============================================================================
--- branches/release/boost/graph/planar_detail/boyer_myrvold_impl.hpp (original)
+++ branches/release/boost/graph/planar_detail/boyer_myrvold_impl.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -104,7 +104,7 @@
     }
     
     template <typename Vertex, typename Graph>
- void finish_vertex(const Vertex& u, Graph& g)
+ void finish_vertex(const Vertex& u, Graph&)
     {
       typedef typename graph_traits<Graph>::vertices_size_type v_size_t;
 
@@ -889,7 +889,7 @@
     }
 
 
- void add_to_merge_points(vertex_t v, graph::detail::no_old_handles) {}
+ void add_to_merge_points(vertex_t, graph::detail::no_old_handles) {}
 
     void add_to_merge_points(vertex_t v, graph::detail::store_old_handles)
     {
@@ -897,7 +897,7 @@
     }
 
     
- void add_to_embedded_edges(edge_t e, graph::detail::no_old_handles) {}
+ void add_to_embedded_edges(edge_t, graph::detail::no_old_handles) {}
 
     void add_to_embedded_edges(edge_t e, graph::detail::store_old_handles)
     {

Modified: branches/release/boost/graph/planar_face_traversal.hpp
==============================================================================
--- branches/release/boost/graph/planar_face_traversal.hpp (original)
+++ branches/release/boost/graph/planar_face_traversal.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -29,11 +29,11 @@
     {}
 
     template <typename Edge>
- void next_edge(Edge e)
+ void next_edge(Edge)
     {}
 
     template <typename Vertex>
- void next_vertex(Vertex v)
+ void next_vertex(Vertex)
     {}
 
     void end_face()

Modified: branches/release/boost/graph/properties.hpp
==============================================================================
--- branches/release/boost/graph/properties.hpp (original)
+++ branches/release/boost/graph/properties.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -175,10 +175,22 @@
 
   namespace detail {
 
+ template <typename A> struct return_void {typedef void type;};
+
+ template <typename Graph, typename Enable = void>
+ struct graph_tag_or_void {
+ typedef void type;
+ };
+
+ template <typename Graph>
+ struct graph_tag_or_void<Graph, typename return_void<typename Graph::graph_tag>::type> {
+ typedef typename Graph::graph_tag type;
+ };
+
     template <class Graph, class PropertyTag>
     struct edge_property_map {
- typedef typename Graph::edge_property_type Property;
- typedef typename Graph::graph_tag graph_tag;
+ typedef typename edge_property_type<Graph>::type Property;
+ typedef typename graph_tag_or_void<Graph>::type graph_tag;
       typedef typename edge_property_selector<graph_tag>::type Selector;
       typedef typename Selector::template bind_<Graph,Property,PropertyTag>
         Bind;
@@ -187,8 +199,8 @@
     };
     template <class Graph, class PropertyTag>
     class vertex_property_map {
- typedef typename Graph::vertex_property_type Property;
- typedef typename Graph::graph_tag graph_tag;
+ typedef typename vertex_property_type<Graph>::type Property;
+ typedef typename graph_tag_or_void<Graph>::type graph_tag;
       typedef typename vertex_property_selector<graph_tag>::type Selector;
       typedef typename Selector::template bind_<Graph,Property,PropertyTag>
         Bind;

Modified: branches/release/boost/graph/property_maps/constant_property_map.hpp
==============================================================================
--- branches/release/boost/graph/property_maps/constant_property_map.hpp (original)
+++ branches/release/boost/graph/property_maps/constant_property_map.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -43,7 +43,7 @@
         : m_value(copy.m_value)
     { }
 
- inline reference operator [](const key_type& v) const
+ inline reference operator [](const key_type&) const
     { return m_value; }
 
     value_type m_value;

Modified: branches/release/boost/graph/r_c_shortest_paths.hpp
==============================================================================
--- branches/release/boost/graph/r_c_shortest_paths.hpp (original)
+++ branches/release/boost/graph/r_c_shortest_paths.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -162,7 +162,7 @@
 void r_c_shortest_paths_dispatch
 ( const Graph& g,
   const VertexIndexMap& vertex_index_map,
- const EdgeIndexMap& edge_index_map,
+ const EdgeIndexMap& /*edge_index_map*/,
   typename graph_traits<Graph>::vertex_descriptor s,
   typename graph_traits<Graph>::vertex_descriptor t,
   // each inner vector corresponds to a pareto-optimal path
@@ -179,7 +179,7 @@
   Resource_Extension_Function& ref,
   Dominance_Function& dominance,
   // to specify the memory management strategy for the labels
- Label_Allocator la,
+ Label_Allocator /*la*/,
   Visitor vis )
 {
   pareto_optimal_resource_containers.clear();
@@ -449,15 +449,15 @@
 struct default_r_c_shortest_paths_visitor
 {
   template<class Label, class Graph>
- void on_label_popped( const Label& l, const Graph& g ) {}
+ void on_label_popped( const Label&, const Graph& ) {}
   template<class Label, class Graph>
- void on_label_feasible( const Label& l, const Graph& g ) {}
+ void on_label_feasible( const Label&, const Graph& ) {}
   template<class Label, class Graph>
- void on_label_not_feasible( const Label& l, const Graph& g ) {}
+ void on_label_not_feasible( const Label&, const Graph& ) {}
   template<class Label, class Graph>
- void on_label_dominated( const Label& l, const Graph& g ) {}
+ void on_label_dominated( const Label&, const Graph& ) {}
   template<class Label, class Graph>
- void on_label_not_dominated( const Label& l, const Graph& g ) {}
+ void on_label_not_dominated( const Label&, const Graph& ) {}
 }; // default_r_c_shortest_paths_visitor
 
 

Modified: branches/release/boost/graph/reverse_graph.hpp
==============================================================================
--- branches/release/boost/graph/reverse_graph.hpp (original)
+++ branches/release/boost/graph/reverse_graph.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -9,6 +9,8 @@
 #include <boost/graph/adjacency_iterator.hpp>
 #include <boost/graph/properties.hpp>
 #include <boost/tuple/tuple.hpp>
+#include <boost/type_traits.hpp>
+#include <boost/mpl/if.hpp>
 
 #if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
 // Stay out of the way of the concept checking class
@@ -75,11 +77,6 @@
     typedef typename Traits::vertices_size_type vertices_size_type;
     typedef typename Traits::edges_size_type edges_size_type;
 
- // More typedefs used by detail::edge_property_map, vertex_property_map
- typedef typename boost::edge_property_type<BidirectionalGraph>::type
- edge_property_type;
- typedef typename boost::vertex_property_type<BidirectionalGraph>::type
- vertex_property_type;
     typedef reverse_graph_tag graph_tag;
 
 #ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
@@ -105,6 +102,18 @@
     GraphRef m_g;
 };
 
+
+// These are separate so they are not instantiated unless used (see bug 1021)
+template <class BidirectionalGraph, class GraphRef>
+struct vertex_property_type<reverse_graph<BidirectionalGraph, GraphRef> > {
+ typedef typename boost::vertex_property_type<BidirectionalGraph>::type type;
+};
+
+template <class BidirectionalGraph, class GraphRef>
+struct edge_property_type<reverse_graph<BidirectionalGraph, GraphRef> > {
+ typedef typename boost::edge_property_type<BidirectionalGraph>::type type;
+};
+
 #ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
   template<typename Graph, typename GraphRef>
   struct vertex_bundle_type<reverse_graph<Graph, GraphRef> >
@@ -177,6 +186,14 @@
 }
 
 template <class BidirectionalGraph, class GRef>
+inline typename graph_traits<BidirectionalGraph>::vertex_descriptor
+vertex(const typename graph_traits<BidirectionalGraph>::vertices_size_type v,
+ const reverse_graph<BidirectionalGraph,GRef>& g)
+{
+ return vertex(v, g.m_g);
+}
+
+template <class BidirectionalGraph, class GRef>
 inline std::pair<typename graph_traits<BidirectionalGraph>::edge_descriptor,
                  bool>
 edge(const typename graph_traits<BidirectionalGraph>::vertex_descriptor u,
@@ -267,14 +284,14 @@
 };
 
 template <class BidirGraph, class GRef, class Property>
-typename property_map<BidirGraph, Property>::type
+typename property_map<reverse_graph<BidirGraph,GRef>, Property>::type
 get(Property p, reverse_graph<BidirGraph,GRef>& g)
 {
   return get(p, g.m_g);
 }
 
 template <class BidirGraph, class GRef, class Property>
-typename property_map<BidirGraph, Property>::const_type
+typename property_map<reverse_graph<BidirGraph,GRef>, Property>::const_type
 get(Property p, const reverse_graph<BidirGraph,GRef>& g)
 {
   const BidirGraph& gref = g.m_g; // in case GRef is non-const
@@ -309,7 +326,10 @@
 
 template<typename BidirectionalGraph, typename GRef, typename Tag>
 inline
-typename graph_property<BidirectionalGraph, Tag>::type
+typename boost::mpl::if_<
+ boost::is_const<typename boost::remove_reference<GRef>::type>,
+ const typename graph_property<BidirectionalGraph, Tag>::type&,
+ typename graph_property<BidirectionalGraph, Tag>::type& >::type
 get_property(const reverse_graph<BidirectionalGraph,GRef>& g, Tag tag)
 {
   return get_property(g.m_g, tag);

Modified: branches/release/boost/graph/subgraph.hpp
==============================================================================
--- branches/release/boost/graph/subgraph.hpp (original)
+++ branches/release/boost/graph/subgraph.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -175,25 +175,27 @@
 
     // local <-> global descriptor conversion functions
     vertex_descriptor local_to_global(vertex_descriptor u_local) const
- { return m_global_vertex[u_local]; }
+ { return is_root() ? u_local : m_global_vertex[u_local]; }
 
     vertex_descriptor global_to_local(vertex_descriptor u_global) const {
         vertex_descriptor u_local; bool in_subgraph;
+ if (is_root()) return u_global;
         tie(u_local, in_subgraph) = this->find_vertex(u_global);
         assert(in_subgraph == true);
         return u_local;
     }
 
     edge_descriptor local_to_global(edge_descriptor e_local) const
- { return m_global_edge[get(get(edge_index, m_graph), e_local)]; }
+ { return is_root() ? e_local : m_global_edge[get(get(edge_index, m_graph), e_local)]; }
 
     edge_descriptor global_to_local(edge_descriptor e_global) const
- { return (*m_local_edge.find(get(get(edge_index, root().m_graph), e_global))).second; }
+ { return is_root() ? e_global : (*m_local_edge.find(get(get(edge_index, root().m_graph), e_global))).second; }
 
     // Is vertex u (of the root graph) contained in this subgraph?
     // If so, return the matching local vertex.
     std::pair<vertex_descriptor, bool>
     find_vertex(vertex_descriptor u_global) const {
+ if (is_root()) return std::make_pair(u_global, true);
         typename std::map<vertex_descriptor, vertex_descriptor>::const_iterator
             i = m_local_vertex.find(u_global);
         bool valid = i != m_local_vertex.end();

Modified: branches/release/boost/graph/two_bit_color_map.hpp
==============================================================================
--- branches/release/boost/graph/two_bit_color_map.hpp (original)
+++ branches/release/boost/graph/two_bit_color_map.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -14,6 +14,7 @@
 #define BOOST_TWO_BIT_COLOR_MAP_HPP
 
 #include <boost/property_map/property_map.hpp>
+#include <boost/graph/properties.hpp>
 #include <boost/shared_array.hpp>
 #include <algorithm>
 
@@ -77,8 +78,10 @@
   assert (value >= 0 && value < 4);
   std::size_t byte_num = i / 4;
   std::size_t bit_position = ((i % 4) * 2);
- pm.data.get()[byte_num] = (pm.data.get()[byte_num] & ~(3 << bit_position))
- | (value << bit_position);
+ pm.data.get()[byte_num] =
+ (unsigned char)
+ ((pm.data.get()[byte_num] & ~(3 << bit_position))
+ | (value << bit_position));
 }
 
 template<typename IndexMap>

Deleted: branches/release/boost/pending/ct_if.hpp
==============================================================================
--- branches/release/boost/pending/ct_if.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
+++ (empty file)
@@ -1,43 +0,0 @@
-// (C) Copyright Jeremy Siek 2000.
-// Distributed under 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)
-
-// This header replaces the implementation of ct_if that preceded the
-// introduction of Boost.MPL with a facade that defers to that reviewed and
-// accepted library.
-
-// Author: Ronald Garcia
-// Date: 20 October, 2006
-
-
-#ifndef BOOST_CT_IF_HPP
-#define BOOST_CT_IF_HPP
-
-
-// A stub implementation in terms of Boost.MPL
-
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/and.hpp>
-// true_type and false_type are used by applications of ct_if
-#include <boost/type_traits/integral_constant.hpp>
-
-namespace boost {
-
- template <class A, class B>
- struct ct_and : boost::mpl::and_<A,B> {};
-
- template <class A>
- struct ct_not : mpl::not_<A> {};
-
- template <bool cond, class A, class B>
- struct ct_if : mpl::if_c<cond,A,B> {};
-
- template <class cond, class A, class B>
- struct ct_if_t : mpl::if_<cond,A,B> {};
-
-} // namespace boost
-
-#endif // BOOST_CT_IF_HPP
-

Modified: branches/release/boost/pending/property.hpp
==============================================================================
--- branches/release/boost/pending/property.hpp (original)
+++ branches/release/boost/pending/property.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -6,7 +6,7 @@
 #ifndef BOOST_PROPERTY_HPP
 #define BOOST_PROPERTY_HPP
 
-#include <boost/pending/ct_if.hpp>
+#include <boost/mpl/bool.hpp>
 
 namespace boost {
 
@@ -47,15 +47,9 @@
   };
 
   template <class P>
- struct has_property {
- BOOST_STATIC_CONSTANT(bool, value = true);
- typedef true_type type;
- };
+ struct has_property : boost::mpl::true_ {};
   template <>
- struct has_property<no_property> {
- BOOST_STATIC_CONSTANT(bool, value = false);
- typedef false_type type;
- };
+ struct has_property<no_property> : boost::mpl::false_ {};
 
 } // namespace boost
 

Deleted: branches/release/boost/property_map.hpp
==============================================================================
--- branches/release/boost/property_map.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
+++ (empty file)
@@ -1,19 +0,0 @@
-/*=============================================================================
-Copyright (c) 2009 Trustees of Indiana University
-
-Distributed under 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)
-=============================================================================*/
-// Redirect/warning header, adapted from the version in Spirit
-
-#include <boost/version.hpp>
-
-#if BOOST_VERSION >= 103800
-#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__)
-# pragma message ("Warning: This header is deprecated. Please use: boost/property_map/property_map.hpp")
-#elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__)
-# warning "This header is deprecated. Please use: boost/property_map/property_map.hpp"
-#endif
-#endif
-
-#include <boost/property_map/property_map.hpp>

Modified: branches/release/boost/property_map/property_map.hpp
==============================================================================
--- branches/release/boost/property_map/property_map.hpp (original)
+++ branches/release/boost/property_map/property_map.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -302,7 +302,8 @@
     }
   };
 
- struct identity_property_map;
+ template <typename T>
+ struct typed_identity_property_map;
 
   // A helper class for constructing a property map
   // from a class that implements operator[]
@@ -539,19 +540,23 @@
   };
 
   //=========================================================================
- // A property map that applies the identity function to integers
- struct identity_property_map
- : public boost::put_get_helper<std::size_t,
- identity_property_map>
+ // A generalized identity property map
+ template <typename T>
+ struct typed_identity_property_map
+ : public boost::put_get_helper<T, typed_identity_property_map<T> >
   {
- typedef std::size_t key_type;
- typedef std::size_t value_type;
- typedef std::size_t reference;
+ typedef T key_type;
+ typedef T value_type;
+ typedef T reference;
     typedef boost::readable_property_map_tag category;
 
     inline value_type operator[](const key_type& v) const { return v; }
   };
 
+//=========================================================================
+ // A property map that applies the identity function to integers
+ typedef typed_identity_property_map<std::size_t> identity_property_map;
+
   //=========================================================================
   // A property map that does not do anything, for
   // when you have to supply a property map, but don't need it.

Deleted: branches/release/boost/property_map_iterator.hpp
==============================================================================
--- branches/release/boost/property_map_iterator.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
+++ (empty file)
@@ -1,19 +0,0 @@
-/*=============================================================================
-Copyright (c) 2009 Trustees of Indiana University
-
-Distributed under 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)
-=============================================================================*/
-// Redirect/warning header, adapted from the version in Spirit
-
-#include <boost/version.hpp>
-
-#if BOOST_VERSION >= 103800
-#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__)
-# pragma message ("Warning: This header is deprecated. Please use: boost/property_map/property_map_iterator.hpp")
-#elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__)
-# warning "This header is deprecated. Please use: boost/property_map/property_map_iterator.hpp"
-#endif
-#endif
-
-#include <boost/property_map/property_map_iterator.hpp>

Deleted: branches/release/boost/vector_property_map.hpp
==============================================================================
--- branches/release/boost/vector_property_map.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
+++ (empty file)
@@ -1,19 +0,0 @@
-/*=============================================================================
-Copyright (c) 2009 Trustees of Indiana University
-
-Distributed under 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)
-=============================================================================*/
-// Redirect/warning header, adapted from the version in Spirit
-
-#include <boost/version.hpp>
-
-#if BOOST_VERSION >= 103800
-#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__)
-# pragma message ("Warning: This header is deprecated. Please use: boost/property_map/vector_property_map.hpp")
-#elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__)
-# warning "This header is deprecated. Please use: boost/property_map/vector_property_map.hpp"
-#endif
-#endif
-
-#include <boost/property_map/vector_property_map.hpp>

Modified: branches/release/libs/graph/build/Jamfile.v2
==============================================================================
--- branches/release/libs/graph/build/Jamfile.v2 (original)
+++ branches/release/libs/graph/build/Jamfile.v2 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -11,53 +11,19 @@
     : source-location ../src
     ;
 
-local optional_sources ;
-local optional_reqs ;
-
-if [ modules.peek : EXPAT_INCLUDE ] && [ modules.peek : EXPAT_LIBPATH ]
-{
- local EXPAT_INCLUDE = [ modules.peek : EXPAT_INCLUDE ] ;
- local EXPAT_LIBPATH = [ modules.peek : EXPAT_LIBPATH ] ;
-
- if --debug-configuration in [ modules.peek : ARGV ]
- {
- ECHO "Expat include directory: $(EXPAT_INCLUDE)" ;
- ECHO "Expat library directory: $(EXPAT_LIBPATH)" ;
- }
-
- alias graphml
- : graphml.cpp
- : # requirements
- : # default built
- : # usage requirements
- <include>$(EXPAT_INCLUDE)
- <library-path>$(EXPAT_LIBPATH)
- <find-shared-library>expat
- ;
-}
-else
-{
- message graphml
- : "warning: Graph library does not contain optional GraphML reader."
- : "note: to enable GraphML support, set EXPAT_INCLUDE and EXPAT_LIBPATH to the"
- : "note: directories containing the Expat headers and libraries, respectively."
- ;
-}
-explicit graphml ;
-
 lib boost_graph
     :
     read_graphviz_new.cpp
- graphml
+ graphml.cpp
     :
     <library>../../regex/build//boost_regex
- <define>BOOST_GRAPH_NO_LIB=1
     <link>shared:<define>BOOST_GRAPH_DYN_LINK=1
- # # Intel compiler ICEs if we turn optimization on
- <toolset>intel-vc71-win-9.1:<optimization>off
     # Without these flags, MSVC 7.1 and 8.0 crash
+ # User reports that VC++ 8.0 does not fail anymore, so that is removed
     <toolset>msvc-7.1:<cxxflags>-GR-
- <toolset>msvc-8.0:<cxxflags>-GR-
+ :
+ :
+ <library>../../regex/build//boost_regex
     ;
 
 boost-install boost_graph ;

Modified: branches/release/libs/graph/doc/astar_search.html
==============================================================================
--- branches/release/libs/graph/doc/astar_search.html (original)
+++ branches/release/libs/graph/doc/astar_search.html 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -69,6 +69,9 @@
    ColorMap color, VertexIndexMap index_map,
    CompareFunction compare, CombineFunction combine,
    CostInf inf, CostZero zero);
+
+<b>Note that the index_map and color parameters are swapped in
+astar_search_no_init relative to astar_search.</b>
 </PRE>
 
 <P>

Modified: branches/release/libs/graph/doc/compressed_sparse_row.html
==============================================================================
--- branches/release/libs/graph/doc/compressed_sparse_row.html (original)
+++ branches/release/libs/graph/doc/compressed_sparse_row.html 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -49,17 +49,6 @@
     applications or for very large graphs that you do not need to
     change.</p>
 
- <p>There are two interfaces to the compressed sparse row graph. The
- old interface requires that all out edges from a single vertex are
- sorted by target, and does not support construction of the graph from
- unsorted arrays of sources and targets. The new interface has these
- new constructors, but does not support incremental construction of the
- graph or the <tt>edge_range()</tt> and <tt>edge()</tt> functions. The
- old interface is the default, but will be removed in a later version of
- Boost. To select the new interface, add <tt>#define
- BOOST_GRAPH_USE_NEW_CSR_INTERFACE</tt> before including
- <tt>&lt;boost/graph/compressed_sparse_row_graph.hpp&gt;</tt>.</p>
-
     <p>The CSR format stores vertices and edges in separate arrays,
     with the indices into these arrays corresponding to the identifier
     for the vertex or edge, respectively. The edge array is sorted by
@@ -79,8 +68,8 @@
     the template parameters. The
     <tt>Directed</tt> template parameter controls whether one edge direction
     (the default) or both directions are stored. A directed CSR graph has
- <tt>Directed</tt> = <tt>directedS</tt> and a bidirectional CSR graph (only
- supported with the new interface and with a limited set of constructors)
+ <tt>Directed</tt> = <tt>directedS</tt> and a bidirectional CSR graph (with
+ a limited set of constructors)
     has <tt>Directed</tt> = <tt>bidirectionalS</tt>.</p>
 
     <ul>
@@ -121,7 +110,7 @@
   <i>// Graph constructors</i>
   <a href="#default-const">compressed_sparse_row_graph</a>();
 
- <i>// Unsorted edge list constructors <b>(new interface only)</b></i>
+ <i>// Unsorted edge list constructors </i>
   template&lt;typename InputIterator&gt;
   <a href="#edge-const">compressed_sparse_row_graph</a>(edges_are_unsorted_t,
                               InputIterator edge_begin, InputIterator edge_end,
@@ -148,21 +137,7 @@
                               vertices_size_type numverts,
                               const GraphProperty&amp; prop = GraphProperty());
 
- <i>// Old sorted edge list constructors <b>(old interface only)</b></i>
- template&lt;typename InputIterator&gt;
- compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
- vertices_size_type numverts,
- edges_size_type numedges = 0,
- const GraphProperty&amp; prop = GraphProperty());
-
- template&lt;typename InputIterator, typename EdgePropertyIterator&gt;
- compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
- EdgePropertyIterator ep_iter,
- vertices_size_type numverts,
- edges_size_type numedges = 0,
- const GraphProperty&amp; prop = GraphProperty());
-
- <i>// New sorted edge list constructors <b>(both interfaces, directed only)</b></i>
+ <i>// New sorted edge list constructors <b>(directed only)</b></i>
   template&lt;typename InputIterator&gt;
   <a href="#edge-sorted-const">compressed_sparse_row_graph</a>(edges_are_sorted_t,
                               InputIterator edge_begin, InputIterator edge_end,
@@ -178,7 +153,7 @@
                               edges_size_type numedges = 0,
                               const GraphProperty&amp; prop = GraphProperty());
 
- <i>// In-place unsorted edge list constructors <b>(new interface and directed only)</b></i>
+ <i>// In-place unsorted edge list constructors <b>(directed only)</b></i>
   template&lt;typename InputIterator&gt;
   <a href="#edge-inplace-const">compressed_sparse_row_graph</a>(construct_inplace_from_sources_and_targets_t,
                               std::vector&lt;vertex_descriptor&gt;&amp; sources,
@@ -194,7 +169,7 @@
                               vertices_size_type numverts,
                               const GraphProperty&amp; prop = GraphProperty());
 
- <i>// Miscellaneous constructors <b>(both interfaces, directed only)</b></i>
+ <i>// Miscellaneous constructors <b>(directed only)</b></i>
   template&lt;typename Graph, typename VertexIndexMap&gt;
   <a href="#graph-const">compressed_sparse_row_graph</a>(const Graph&amp; g, const VertexIndexMap&amp; vi,
                               vertices_size_type numverts,
@@ -206,7 +181,7 @@
   template&lt;typename Graph&gt;
   explicit compressed_sparse_row_graph(const Graph&amp; g);
 
- <i>// Graph mutators (both interfaces, directed only)</i>
+ <i>// Graph mutators (directed only)</i>
   template&lt;typename Graph, typename VertexIndexMap&gt;
   void assign(const Graph&amp; g, const VertexIndexMap&amp; vi,
               vertices_size_type numverts, edges_size_type numedges);
@@ -217,51 +192,46 @@
   template&lt;typename Graph&gt;
   void assign(const Graph&amp; g);
 
- <i>// Property Access (both interfaces)</i>
+ <i>// Property Access</i>
   VertexProperty&amp; operator[](vertex_descriptor v);
   const VertexProperty&amp; operator[](vertex_descriptor v) const;
   EdgeProperty&amp; operator[](edge_descriptor v);
   const EdgeProperty&amp; operator[](edge_descriptor v) const;
 };
 
-<i>// Incidence Graph requirements (both interfaces)</i>
+<i>// Incidence Graph requirements</i>
 vertex_descriptor source(edge_descriptor, const compressed_sparse_row_graph&amp;);
 vertex_descriptor target(edge_descriptor, const compressed_sparse_row_graph&amp;);
 std::pair&lt;out_edge_iterator, out_edge_iterator&gt;
   out_edges(vertex_descriptor, const compressed_sparse_row_graph&amp;);
 degree_size_type out_degree(vertex_descriptor v, const compressed_sparse_row_graph&amp;);
 
-<i>// Bidirectional Graph requirements (new interface and bidirectional only)</i>
+<i>// Bidirectional Graph requirements (bidirectional only)</i>
 std::pair&lt;in_edge_iterator, in_edge_iterator&gt;
   in_edges(vertex_descriptor, const compressed_sparse_row_graph&amp;);
 degree_size_type in_degree(vertex_descriptor v, const compressed_sparse_row_graph&amp;);
 
-<i>// Adjacency Graph requirements (both interfaces)</i>
+<i>// Adjacency Graph requirements</i>
 std::pair&lt;adjacency_iterator, adjacency_iterator&gt;
   adjacent_vertices(vertex_descriptor, const compressed_sparse_row_graph&amp;);
 
-<i>// Vertex List Graph requirements (both interfaces)</i>
+<i>// Vertex List Graph requirements</i>
 std::pair&lt;vertex_iterator, vertex_iterator&gt; vertices(const compressed_sparse_row_graph&amp;);
 vertices_size_type num_vertices(const compressed_sparse_row_graph&amp;);
 
-<i>// Edge List Graph requirements (both interfaces)</i>
+<i>// Edge List Graph requirements</i>
 std::pair&lt;edge_iterator, edge_iterator&gt; edges(const compressed_sparse_row_graph&amp;);
 edges_size_type num_edges(const compressed_sparse_row_graph&amp;);
 
-<i>// Vertex access (both interfaces)</i>
+<i>// Vertex access</i>
 vertex_descriptor vertex(vertices_size_type i, const compressed_sparse_row_graph&amp;);
 
 <i>// Edge access</i>
-<b>(old interface only)</b>
-std::pair&lt;out_edge_iterator, out_edge_iterator&gt;
- edge_range(vertex_descriptor u, vertex_descriptor v, const compressed_sparse_row_graph&amp;);
-<b>(both interfaces)</b>
 std::pair&lt;edge_descriptor, bool&gt;
   <a href="#edge">edge</a>(vertex_descriptor u, vertex_descriptor v, const compressed_sparse_row_graph&amp;);
-<b>(both interfaces)</b>
 edge_descriptor edge_from_index(edges_size_type i, const compressed_sparse_row_graph&amp;);
 
-<i>// Property map accessors (both interfaces)</i>
+<i>// Property map accessors</i>
 template&lt;typename PropertyTag&gt;
 property_map&lt;compressed_sparse_row_graph, PropertyTag&gt;::type
 <a href="#get">get</a>(PropertyTag, compressed_sparse_row_graph&amp; g)
@@ -290,31 +260,19 @@
                   const typename graph_property&lt;compressed_sparse_row_graph, GraphPropertyTag&gt;::type&amp; value);
 
 <i>// Incremental construction functions</i>
-<b>(old interface only)</b>
-template&lt;typename Graph&gt;
-vertex_descriptor add_vertex(compressed_sparse_row_graph&amp; g);
-
-<b>(old interface only)</b>
-template&lt;typename Graph&gt;
-vertex_descriptor add_vertices(vertices_size_type count, compressed_sparse_row_graph&amp; g);
-
-<b>(old interface only)</b>
-template&lt;typename Graph&gt;
-edge_descriptor add_edge(vertex_descriptor src, vertex_descriptor tgt, compressed_sparse_row_graph&amp; g);
-
-<b>(new interface and directed only)</b>
+<b>(directed only)</b>
 template&lt;typename InputIterator, typename Graph&gt;
 void add_edges(InputIterator first, InputIterator last, compressed_sparse_row_graph&amp; g);
 
-<b>(new interface and directed only)</b>
+<b>(directed only)</b>
 template&lt;typename InputIterator, typename EPIter, typename Graph&gt;
 void add_edges(InputIterator first, InputIterator last, EPIter ep_first, EPIter ep_last, compressed_sparse_row_graph&amp; g);
 
-<b>(new interface and directed only)</b>
+<b>(directed only)</b>
 template&lt;typename BidirectionalIterator, typename Graph&gt;
 void add_edges_sorted(BidirectionalIterator first, BidirectionalIterator last, compressed_sparse_row_graph&amp; g);
 
-<b>(new interface and directed only)</b>
+<b>(directed only)</b>
 template&lt;typename BidirectionalIterator, typename EPIter, typename Graph&gt;
 void add_edges_sorted(BidirectionalIterator first, BidirectionalIterator last, EPIter ep_iter, compressed_sparse_row_graph&amp; g);
 
@@ -359,8 +317,9 @@
       <blockquote>
         A selector that determines whether the graph will be directed,
         bidirectional or undirected. At this time, the CSR graph type
- only supports directed graphs, so this value must
- be <code>boost::directedS</code>.<br>
+ only supports directed and bidirectional graphs, so this value must
+ be either <code>boost::directedS</code> or
+ <code>boost::bidirectionalS</code>.<br>
         <b>Default</b>: <code>boost::directedS</code>
       </blockquote>
 
@@ -465,7 +424,6 @@
       edge_end)</code> do not need to be sorted. This constructor uses extra
       memory to save the edge information before adding it to the graph,
       avoiding the requirement for the iterator to have multi-pass capability.
- <b>(This function is only provided by the new interface.)</b>
     </p>
 
     <p class="indent">
@@ -498,7 +456,6 @@
       <tt>edge_begin</tt> to <tt>edge_end</tt>. This constructor uses extra
       memory to save the edge information before adding it to the graph,
       avoiding the requirement for the iterator to have multi-pass capability.
- <b>(This function is only provided by the new interface.)</b>
     </p>
 
     <hr></hr>
@@ -523,7 +480,6 @@
       numverts)</code>. The edges in <code>[edge_begin,
       edge_end)</code> do not need to be sorted. Multiple passes will be made
       over the edge range.
- <b>(This function is only provided by the new interface.)</b>
     </p>
 
     <p class="indent">
@@ -555,7 +511,6 @@
       of the graph, where <tt>m</tt> is distance from
       <tt>edge_begin</tt> to <tt>edge_end</tt>. Multiple passes will be made
       over the edge and property ranges.
- <b>(This function is only provided by the new interface.)</b>
     </p>
 
     <hr></hr>
@@ -584,9 +539,7 @@
       numverts)</code>. The edges in <code>[edge_begin,
       edge_end)</code> must be sorted so that all edges originating
       from vertex <i>i</i> preceed any edges originating from all
- vertices <i>j</i> where <i>j &gt; i</i>. <b>(The version of this
- constructor without the <tt>edges_are_sorted</tt> tag is deprecated and
- only provided by the old interface.)</b>
+ vertices <i>j</i> where <i>j &gt; i</i>.
     </p>
 
     <p class="indent">
@@ -624,9 +577,7 @@
       <tt>EdgeProperty</tt>. The iterator range <tt>[ep_iter, ep_ter +
         m)</tt> will be used to initialize the properties on the edges
       of the graph, where <tt>m</tt> is distance from
- <tt>edge_begin</tt> to <tt>edge_end</tt>. <b>(The version of this
- constructor without the <tt>edges_are_sorted</tt> tag is deprecated and
- only provided by the old interface.)</b>
+ <tt>edge_begin</tt> to <tt>edge_end</tt>.
     </p>
 
     <hr></hr>
@@ -647,7 +598,6 @@
       share storage with the constructed graph (and so are safe to destroy).
       The parameter <code>prop</code>, if provided, is used to initialize the
       graph property.
- <b>(This function is only provided by the new interface.)</b>
     </p>
 
     <hr></hr>
@@ -670,7 +620,6 @@
       not share storage with the constructed graph (and so are safe to
       destroy). The parameter <code>prop</code>, if provided, is used to
       initialize the graph property.
- <b>(This function is only provided by the new interface.)</b>
     </p>
 
     <hr></hr>
@@ -774,20 +723,6 @@
 
     <hr></hr>
 
- <a name="edge-access"></a><h3>Edge access</h3>
- <pre><a name="edge_range"></a>
- std::pair&lt;out_edge_iterator, out_edge_iterator&gt;
- edge_range(vertex_descriptor u, vertex_descriptor v, const compressed_sparse_row_graph&amp;);
- </pre>
-
- <p class="indent">
- Returns all edges from <tt>u</tt> to <tt>v</tt>. Requires time
- logarithmic in the number of edges outgoing from <tt>u</tt>.
- <b>(This function is only provided by the old interface.)</b>
- </p>
-
- <hr></hr>
-
     <pre><a name="edge"></a>
   std::pair&lt;edge_descriptor, bool&gt;
     edge(vertex_descriptor u, vertex_descriptor v, const compressed_sparse_row_graph&amp;);
@@ -799,9 +734,8 @@
       second value in the pair will be <tt>false</tt>. If multiple
       edges exist from <tt>u</tt> to <tt>v</tt>, the first edge will
       be returned; use edge_range
- to retrieve all edges. This function requires time logarithmic in the
- number of edges outgoing from <tt>u</tt> for the old interface, and
- linear time for the new interface.
+ to retrieve all edges. This function requires linear time in the
+ number of edges outgoing from <tt>u</tt>.
     </p>
 
     <hr></hr>
@@ -898,47 +832,6 @@
 
     <h3><a name="incremental-construction-functions">Incremental construction functions</a></h3>
 
- <pre><a name="add_vertex"></a>
-vertex_descriptor add_vertex(compressed_sparse_row_graph&amp; g)
- </pre>
-
- <p class="indent">
- Add a new vertex to the end of the graph <tt>g</tt>, and return a
- descriptor for that vertex. The new vertex will be greater than any of
- the previous vertices in <tt>g</tt>.
- <b>(This function is only provided by the old interface.)</b>
- </p>
-
- <hr></hr>
-
- <pre><a name="add_vertices"></a>
-vertex_descriptor add_vertices(vertices_size_type count, compressed_sparse_row_graph&amp; g)
- </pre>
-
- <p class="indent">
- Add <tt>count</tt> new vertices to the end of the graph <tt>g</tt>, and
- return a descriptor for the smallest new vertex. The new vertices will
- be greater than any of the previous vertices in <tt>g</tt>.
- <b>(This function is only provided by the old interface.)</b>
- </p>
-
- <hr></hr>
-
- <pre><a name="add_edge"></a>
-edge_descriptor add_edge(vertex_descriptor src, vertex_descriptor tgt, compressed_sparse_row_graph&amp; g)
- </pre>
-
- <p class="indent">
- Add a new edge from <tt>src</tt> to <tt>tgt</tt> in the graph <tt>g</tt>,
- and return a descriptor for it. There must not be an edge in <tt>g</tt>
- whose source vertex is greater than <tt>src</tt>. If the vertex
- <tt>src</tt> has out edges before this operation is called, there must be
- none whose target is larger than <tt>tgt</tt>.
- <b>(This function is only provided by the old interface.)</b>
- </p>
-
- <hr></hr>
-
     <pre><a name="add_edges"></a>
 template&lt;typename InputIterator&gt;
 void add_edges(InputIterator first, InputIterator last, compressed_sparse_row_graph&amp; g)
@@ -951,7 +844,6 @@
       whose <code>value_type</code> is an <code>std::pair</code> of integer
       values. These integer values are the source and target vertices of the
       new edges. The edges do not need to be sorted.
- <b>(This function is only provided by the new interface.)</b>
     </p>
 
     <hr></hr>
@@ -972,7 +864,6 @@
       of <tt>EPIter</tt> must be the edge property type of the graph. The
       integer values produced by the <tt>InputIterator</tt> are the source and
       target vertices of the new edges. The edges do not need to be sorted.
- <b>(This function is only provided by the new interface.)</b>
     </p>
 
     <hr></hr>
@@ -990,7 +881,6 @@
       values. These integer values are the source and target vertices of the
       new edges. The edges must be sorted in increasing order by source vertex
       index.
- <b>(This function is only provided by the new interface.)</b>
     </p>
 
     <hr></hr>
@@ -1013,7 +903,6 @@
       property type of the graph.
       The edges must be sorted in increasing order by source vertex
       index.
- <b>(This function is only provided by the new interface.)</b>
     </p>
 
     <hr></hr>

Modified: branches/release/libs/graph/doc/index.html
==============================================================================
--- branches/release/libs/graph/doc/index.html (original)
+++ branches/release/libs/graph/doc/index.html 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -1,3 +1,5 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
 <HTML>
 <!--
      Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
@@ -7,17 +9,16 @@
      http://www.boost.org/LICENSE_1_0.txt)
   -->
 <Head>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
 <Title>The Boost Graph Library</Title>
-<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
- ALINK="#ff0000">
-<IMG SRC="../../../boost.png"
- ALT="C++ Boost" width="277" height="86">
-
-<BR Clear>
+<BODY bgcolor="#ffffff" link="#0000ee" text="#000000" vlink="#551a8b"
+ alink="#ff0000">
+<IMG src="../../../boost.png"
+ alt="C++ Boost" width="277" height="86">
 
 <h1>The Boost Graph Library (BGL)
 <a href="http://www.awprofessional.com/title/0201729148">
-<img src="bgl-cover.jpg" ALT="BGL Book" ALIGN="RIGHT"></a>
+<img src="bgl-cover.jpg" alt="BGL Book" align="RIGHT"></a>
 </h1>
 
 <P>
@@ -28,12 +29,12 @@
 importance to encourage reuse of graph algorithms and data structures.
 Part of the Boost Graph Library is a generic interface that allows
 access to a graph's structure, but hides the details of the
-implementation. This is an ``open'' interface in the sense that any
+implementation. This is an &ldquo;open&rdquo; interface in the sense that any
 graph library that implements this interface will be interoperable
 with the BGL generic algorithms and with other algorithms that also
 use this interface. The BGL provides some general purpose graph classes
 that conform to this interface, but they are not meant to be the
-``only'' graph classes; there certainly will be other graph classes
+&ldquo;only&rdquo; graph classes; there certainly will be other graph classes
 that are better for certain situations. We believe that the main
 contribution of the The BGL is the formulation of this interface.
 
@@ -49,7 +50,9 @@
 <P>
 Of course, if you are already familiar with generic programming,
 please dive right in! Here's the <a
-href="./table_of_contents.html">Table of Contents</a>.
+href="./table_of_contents.html">Table of Contents</a>. For distributed-memory
+parallelism, you can also look at the <a
+href="../../graph_parallel/doc/html/index.html">Parallel BGL</a>.
 
 <P>
 The source for the BGL is available as part of the Boost distribution,
@@ -62,7 +65,7 @@
 href="read_graphviz.html">GraphViz input parser</a>.</p>
 
 <p>When compiling programs that use the BGL, <b>be sure to compile
-with optimization</b>. For instance, select "Release" mode with
+with optimization</b>. For instance, select &ldquo;Release&rdquo; mode with
 Microsoft Visual C++ or supply the flag <tt>-O2</tt> or <tt>-O3</tt>
 to GCC. </p>
 
@@ -108,14 +111,14 @@
 <P>
 The third way that STL is generic is that its containers are
 parameterized on the element type. Though hugely important, this is
-perhaps the least ``interesting'' way in which STL is generic.
+perhaps the least &ldquo;interesting&rdquo; way in which STL is generic.
 Generic programming is often summarized by a brief description of
 parameterized lists such as <TT>std::list&lt;T&gt;</TT>. This hardly scratches
 the surface!
 
 <P>
 
-<H2>Genericity in the Boost Graph Library</A>
+<H2>Genericity in the Boost Graph Library
 </H2>
 
 <P>
@@ -169,7 +172,7 @@
 Second, the graph algorithms of the BGL are extensible. The BGL introduces the
 notion of a <I>visitor</I>, which is just a function object with
 multiple methods. In graph algorithms, there are often several key
-``event points'' at which it is useful to insert user-defined
+&ldquo;event points&rdquo; at which it is useful to insert user-defined
 operations. The visitor object has a different method that is invoked
 at each event point. The particular event points and corresponding
 visitor methods depend on the particular algorithm. They often
@@ -185,13 +188,13 @@
 The third way that the BGL is generic is analogous to the parameterization
 of the element-type in STL containers, though again the story is a bit
 more complicated for graphs. We need to associate values (called
-"properties") with both the vertices and the edges of the graph.
+&ldquo;properties&rdquo;) with both the vertices and the edges of the graph.
 In addition, it will often be necessary to associate
 multiple properties with each vertex and edge; this is what we mean
 by multi-parameterization.
 The STL <tt>std::list&lt;T&gt;</tt> class has a parameter <tt>T</tt>
 for its element type. Similarly, BGL graph classes have template
-parameters for vertex and edge ``properties''. A
+parameters for vertex and edge &ldquo;properties&rdquo;. A
 property specifies the parameterized type of the property and also assigns
 an identifying tag to the property. This tag is used to distinguish
 between the multiple properties which an edge or vertex may have. A
@@ -265,8 +268,8 @@
 </UL>
 
 <P>
-The <TT>adjacency_list</TT> class is the general purpose ``swiss army
-knife'' of graph classes. It is highly parameterized so that it can be
+The <TT>adjacency_list</TT> class is the general purpose &ldquo;swiss army
+knife&rdquo; of graph classes. It is highly parameterized so that it can be
 optimized for different situations: the graph is directed or
 undirected, allow or disallow parallel edges, efficient access to just
 the out-edges or also to the in-edges, fast vertex insertion and

Modified: branches/release/libs/graph/doc/known_problems.html
==============================================================================
--- branches/release/libs/graph/doc/known_problems.html (original)
+++ branches/release/libs/graph/doc/known_problems.html 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -44,14 +44,6 @@
   <li>&quot;using boost::tie;&quot; may cause VC++ internal compiler error.
 </ol>
 
-<h2>Workarounds</h2>
-<p>
-<b>Compiler Warnings on <code>hash_set</code> and <code>hash_map</code></b>. Versions of
-GCC &gt;= 4.3 deprecate these headers and data structures and will emit warnings when
-compiling the BGL. To suppress these warnings <em>and the hash-based storage selectors</em>
-define the <code>BOOST_NO_HASH</code> prior to including any Boost.Graph headers.
-</p>
-
 <br>
 <HR>
 <TABLE>

Modified: branches/release/libs/graph/doc/kolmogorov_max_flow.html
==============================================================================
--- branches/release/libs/graph/doc/kolmogorov_max_flow.html (original)
+++ branches/release/libs/graph/doc/kolmogorov_max_flow.html 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -216,7 +216,9 @@
 <A HREF="VertexListGraph.html">Vertex List Graph</A>, <A HREF="EdgeListGraph.html">Edge
 List Graph</A> and Incidence Graph.
 For each edge <I>(u,v)</I> in the graph, the reverse edge <I>(v,u)</I>
-must also be in the graph.
+must also be in the graph. Performance of the algorithm will be slightly
+improved if the graph type also models <a href="AdjacencyMatrix.html">Adjacency
+Matrix</a>.
 </BLOCKQUOTE>
 <P>IN: <TT>vertex_descriptor src</TT>
 </P>

Modified: branches/release/libs/graph/doc/prim_minimum_spanning_tree.html
==============================================================================
--- branches/release/libs/graph/doc/prim_minimum_spanning_tree.html (original)
+++ branches/release/libs/graph/doc/prim_minimum_spanning_tree.html 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -55,6 +55,8 @@
 href="./dijkstra_shortest_paths.html"><TT>dijkstra_shortest_paths()</TT></a>
 with the appropriate choice of comparison and combine functors.
 The pseudo-code for Prim's algorithm is listed below.
+The algorithm as implemented in Boost.Graph does not produce correct results on
+graphs with parallel edges.
 </p>
 
 <table>
@@ -131,7 +133,8 @@
 <blockquote>
   An undirected graph. The type <tt>Graph</tt> must be a
   model of Vertex List Graph
- and Incidence Graph.<br>
+ and Incidence Graph. It should not
+ contain parallel edges.<br>
 
   <b>Python</b>: The parameter is named <tt>graph</tt>.
 </blockquote>

Modified: branches/release/libs/graph/doc/table_of_contents.html
==============================================================================
--- branches/release/libs/graph/doc/table_of_contents.html (original)
+++ branches/release/libs/graph/doc/table_of_contents.html 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -1,3 +1,5 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
 <HTML>
 <!--
      Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
@@ -7,14 +9,13 @@
      http://www.boost.org/LICENSE_1_0.txt)
   -->
 <Head>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
 <Title>Table of Contents: Boost Graph Library</Title>
 <BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
         ALINK="#ff0000">
 <IMG SRC="../../../boost.png"
      ALT="C++ Boost" width="277" height="86">
 
-<BR Clear>
-
 <h1>Table of Contents: the Boost Graph Library
 <a href="http://www.awprofessional.com/title/0201729148">
 <img src="bgl-cover.jpg" ALT="BGL Book" ALIGN="RIGHT"></a>
@@ -22,6 +23,7 @@
 
       <OL>
         <LI>Introduction to the BGL
+ <li>Parallel BGL (distributed-memory parallel graph data structures and algorithms)
         <LI>History
         <LI>List of BGL Users
         <LI>Publications
@@ -64,12 +66,12 @@
            <LI>Mutable Property Graph
          </OL>
         <li>The Property Map Library (technically not part of the graph library, but used a lot here)
- <li><img src="figs/python_ico.gif" alt="(Python)"/>Python bindings</li>
+ <li><img src="figs/python_ico.gif" alt="(Python)">Python bindings</li>
         <li>Visitor Concepts
           <OL>
             <LI>BFS Visitor
             <LI>DFS Visitor
- <LI>Dijkstra Visitor
+ <LI>Dijkstra Visitor
             <LI>Bellman Ford Visitor
             <LI>A* Visitor</LI>
             <LI>Event Visitor
@@ -114,144 +116,158 @@
           <OL>
             <LI>Multi-dimensional grid graph
            </OL>
- <LI>Iterator Adaptors
- <OL>
- <LI><a
- href="./adjacency_iterator.html"><tt>adjacency_iterator</tt></a>
- <LI><a
- href="./inv_adjacency_iterator.html"><tt>inv_adjacency_iterator</tt></a>
- </OL>
- <LI>Traits classes
- <OL>
- <LI>graph_traits
- <LI>adjacency_list_traits
- <LI>property_map
- </OL>
- <LI>Algorithms
- <OL>
- <LI>bgl_named_params
- <LI>Core Algorithm Patterns
- <OL>
- <LI>breadth_first_search
- <LI>breadth_first_visit
- <LI><A
- href="./depth_first_search.html"><tt>depth_first_search</tt></A>
- <LI>depth_first_visit
- <LI><A
- href="./undirected_dfs.html"><tt>undirected_dfs</tt></A>
- </OL>
- <LI>Graph Algorithms
- <OL>
- <LI>Shortest Paths Algorithms
- <OL>
- <LI>dijkstra_shortest_paths
- <LI>dijkstra_shortest_paths_no_color_map
- <LI>bellman_ford_shortest_paths
- <LI>dag_shortest_paths
- <LI><A
- href="./johnson_all_pairs_shortest.html"><tt>johnson_all_pairs_shortest_paths</tt></A>
- <li>floyd_warshall_all_pairs_shortest_paths</li>
- <li>r_c_shortest_paths - resource-constrained shortest paths</li>
- </OL>
- <LI>Minimum Spanning Tree Algorithms
- <OL>
- <LI><A
- href="./kruskal_min_spanning_tree.html"><tt>kruskal_minimum_spanning_tree</tt></A>
- <LI><A
- href="./prim_minimum_spanning_tree.html"><tt>prim_minimum_spanning_tree</tt></A>
- </OL>
- <LI>Connected Components Algorithms
+ </ol>
+ <LI>Iterator Adaptors
         <OL>
- <LI>connected_components
- <LI>strong_components
-
- <LI>biconnected_components
- <LI>articulation_points
- <LI>Incremental Connected Components
+ <LI><a
+ href="./adjacency_iterator.html"><tt>adjacency_iterator</tt></a>
+ <LI><a
+ href="./inv_adjacency_iterator.html"><tt>inv_adjacency_iterator</tt></a>
+ </OL>
+ <LI>Traits classes
+ <OL>
+ <LI>graph_traits
+ <LI>adjacency_list_traits
+ <LI>property_map
+ </OL>
+ <LI>Algorithms
+ <OL>
+ <LI>Named parameters (used in many graph algorithms)
+ <li>Basic Operations
+ <ol>
+ <LI>copy_graph
+ <LI>transpose_graph
+ </ol>
+ <LI>Core Searches
             <OL>
+ <LI>breadth_first_search
+ <LI>breadth_first_visit
+ <LI><A
+ href="./depth_first_search.html"><tt>depth_first_search</tt></A>
+ <LI>depth_first_visit
+ <LI><A
+ href="./undirected_dfs.html"><tt>undirected_dfs</tt></A>
+ </OL>
+
+ <li>Other Core Algorithms
+ <ol>
+ <LI>topological_sort
+ <li>transitive_closure
+ <li>lengauer_tarjan_dominator_tree</li>
+ </ol>
+
+ <LI>Shortest Paths / Cost Minimization Algorithms
+ <OL>
+ <LI>dijkstra_shortest_paths
+ <LI>dijkstra_shortest_paths_no_color_map
+ <LI>bellman_ford_shortest_paths
+ <LI>dag_shortest_paths
+ <LI><A
+ href="./johnson_all_pairs_shortest.html"><tt>johnson_all_pairs_shortest_paths</tt></A>
+ <li>floyd_warshall_all_pairs_shortest_paths</li>
+ <li>r_c_shortest_paths - resource-constrained shortest paths</li>
+ <li>astar_search</li>
+ </OL>
+ <LI>Minimum Spanning Tree Algorithms
+ <OL>
+ <LI><A
+ href="./kruskal_min_spanning_tree.html"><tt>kruskal_minimum_spanning_tree</tt></A>
+ <LI><A
+ href="./prim_minimum_spanning_tree.html"><tt>prim_minimum_spanning_tree</tt></A>
+ </OL>
+ <LI>Connected Components Algorithms
+ <OL>
+ <LI>connected_components
+ <LI>strong_components
+
+ <LI>biconnected_components
+ <LI>articulation_points
+ <LI>Incremental Connected Components
+ <OL>
             <LI>initialize_incremental_components
             <LI>incremental_components
             <LI><A
             href="./incremental_components.html#sec:same-component"><tt>same_component</tt></A>
             <LI>component_index
- </OL>
- </OL></LI>
- <LI>Maximum Flow and Matching Algorithms
- <OL>
- <LI>edmonds_karp_max_flow
- <LI>push_relabel_max_flow
- <li>kolmogorov_max_flow</li>
- <LI>edmonds_maximum_cardinality_matching
- </OL>
-
- <li>Sparse Matrix Ordering Algorithms
+ </OL>
+ </OL></LI>
+ <LI>Maximum Flow and Matching Algorithms
+ <OL>
+ <LI>edmonds_karp_max_flow
+ <LI>push_relabel_max_flow
+ <li>kolmogorov_max_flow</li>
+ <LI>edmonds_maximum_cardinality_matching
+ </OL>
+
+ <li>Sparse Matrix Ordering Algorithms
+ <ol>
+ <LI><A
+ href="./cuthill_mckee_ordering.html"><tt>cuthill_mckee_ordering</tt></a>
+ <li>king_ordering</li>
+ <LI>minimum_degree_ordering
+ <li>sloan_ordering</li>
+ <li>sloan_start_end_vertices</li>
+ </ol>
+ </li>
+ <li>Graph Metrics
+ <ol>
+ <LI>ith_wavefront, max_wavefront, aver_wavefront, and rms_wavefront</LI>
+ <LI>bandwidth
+ <LI>ith_bandwidth
+ <LI>brandes_betweenness_centrality</LI>
+ <li>minimum_cycle_ratio and maximum_cycle_ratio</li>
+ </ol>
+ </li>
+ <li>Graph Structure Comparisons
+ <ol>
+ <LI>isomorphism
+ <li>mcgregor_common_subgraphs</li>
+ </ol>
+
+ <li>Layout Algorithms
+ <ol>
+ <li>random_graph_layout</li>
+ <li>circle_layout</li>
+ <li>kamada_kawai_spring_layout</li>
+ <li>fruchterman_reingold_force_directed_layout</li>
+ <li>gursoy_atun_layout</li>
+ </ol>
+ </li>
+ <li>Clustering algorithms
                   <ol>
- <LI><A
- href="./cuthill_mckee_ordering.html"><tt>cuthill_mckee_ordering</tt></a>
- <li>king_ordering</li>
- <LI>minimum_degree_ordering
+ <li>betweenness_centrality_clustering</li>
                   </ol>
- </li>
- <LI>topological_sort
- <li>transitive_closure
- <LI>copy_graph
- <LI>transpose_graph
- <LI>isomorphism
-
- <li>Path and Tour Algorithms
- <ol>
- <li>metric_tsp_approx</li>
- </ol>
- </li>
-
- <LI>sequential_vertex_coloring
- <li>sloan_ordering</li>
- <li>sloan_start_end_vertices</li>
-
- <LI>ith_wavefront, max_wavefront, aver_wavefront, and rms_wavefront</LI>
- <LI>brandes_betweenness_centrality</LI>
- <li>Layout algorithms
+ </li>
+ <li>Planar Graph Algorithms
+ <ol>
+ <li><a href="boyer_myrvold.html">
+ <tt>boyer_myrvold_planarity_test</tt></a>
+ <li><a href="planar_face_traversal.html">
+ <tt>planar_face_traversal</tt></a>
+ <li><a href="planar_canonical_ordering.html">
+ <tt>planar_canonical_ordering</tt></a>
+ <li><a href="straight_line_drawing.html">
+ <tt>chrobak_payne_straight_line_drawing</tt></a>
+ <li><a href="is_straight_line_drawing.html">
+ <tt>is_straight_line_drawing</tt></a>
+ <li><a href="is_kuratowski_subgraph.html">
+ <tt>is_kuratowski_subgraph</tt></a>
+ <li><a href="make_connected.html">
+ <tt>make_connected</tt></a>
+ <li><a href="make_biconnected_planar.html">
+ <tt>make_biconnected_planar</tt></a>
+ <li><a href="make_maximal_planar.html">
+ <tt>make_maximal_planar</tt></a>
+ </ol>
+
+ <li>Miscellaneous Algorithms
                   <ol>
- <li>random_graph_layout</li>
- <li>circle_layout</li>
- <li>kamada_kawai_spring_layout</li>
- <li>fruchterman_reingold_force_directed_layout</li>
- <li>gursoy_atun_layout</li>
- </ol>
- </li>
- <li>Clustering algorithms
- <ol>
- <li>betweenness_centrality_clustering</li>
- </ol>
- </li>
- <li>astar_search</li>
- <li>lengauer_tarjan_dominator_tree</li>
- <li>minimum_cycle_ratio and maximum_cycle_ratio</li>
- <li>Planar Graph Algorithms
- <ol>
- <li><a href="boyer_myrvold.html">
- <tt>boyer_myrvold_planarity_test</tt></a>
- <li><a href="planar_face_traversal.html">
- <tt>planar_face_traversal</tt></a>
- <li><a href="planar_canonical_ordering.html">
- <tt>planar_canonical_ordering</tt></a>
- <li><a href="straight_line_drawing.html">
- <tt>chrobak_payne_straight_line_drawing</tt></a>
- <li><a href="is_straight_line_drawing.html">
- <tt>is_straight_line_drawing</tt></a>
- <li><a href="is_kuratowski_subgraph.html">
- <tt>is_kuratowski_subgraph</tt></a>
- <li><a href="make_connected.html">
- <tt>make_connected</tt></a>
- <li><a href="make_biconnected_planar.html">
- <tt>make_biconnected_planar</tt></a>
- <li><a href="make_maximal_planar.html">
- <tt>make_maximal_planar</tt></a>
- </ol>
- <li>lengauer_tarjan_dominator_tree</li>
- <li>mcgregor_common_subgraphs</li>
- </OL>
- </OL>
+ <li>metric_tsp_approx</li>
+ <LI>sequential_vertex_coloring
+ </ol>
+ </li>
+
+ </OL>
 
          <li>Graph Input/Output
            <ol>
@@ -268,18 +284,16 @@
           <LI>BasicMatrix
           <LI>incident
           <LI>opposite
- <LI>bandwidth
- <LI>ith_bandwidth
           <LI>Tools for random graphs
           <OL>
           <LI>random_vertex
           <LI>random_edge
           <LI>generate_random_graph
           <LI>randomize_property
- <li><a href="erdos_renyi_generator.html"><tt>erdos_renyi_iterator</tt></li>
- <li><a href="sorted_erdos_renyi_gen.html"><tt>sorted_erdos_renyi_iterator</tt></li>
- <li><a href="plod_generator.html"><tt>plod_iterator</tt></li>
- <li><a href="small_world_generator.html"><tt>small_world_iterator</tt></li>
+ <li>erdos_renyi_iterator</li>
+ <li>sorted_erdos_renyi_iterator</li>
+ <li>plod_iterator</li>
+ <li>small_world_iterator</li>
           </OL>
         </OL>
       <LI>Challenge and To-Do List

Modified: branches/release/libs/graph/doc/transitive_closure.html
==============================================================================
--- branches/release/libs/graph/doc/transitive_closure.html (original)
+++ branches/release/libs/graph/doc/transitive_closure.html 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -56,8 +56,9 @@
 IN: <tt>const Graph&amp; g</tt>
 <blockquote>
  A directed graph, where the <tt>Graph</tt> type must model the
- Vertex List Graph
- and Adjacency Graph concepts.<br>
+ Vertex List Graph,
+ Adjacency Graph,
+ and Adjacency Matrix concepts.<br>
 
   <b>Python</b>: The parameter is named <tt>graph</tt>.
 </blockquote>

Modified: branches/release/libs/graph/example/labeled_graph.cpp
==============================================================================
--- branches/release/libs/graph/example/labeled_graph.cpp (original)
+++ branches/release/libs/graph/example/labeled_graph.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -7,8 +7,6 @@
 #include <iostream>
 #include <string>
 
-#define BOOST_NO_HASH
-
 #include <boost/graph/directed_graph.hpp>
 #include <boost/graph/labeled_graph.hpp>
 

Modified: branches/release/libs/graph/src/graphml.cpp
==============================================================================
--- branches/release/libs/graph/src/graphml.cpp (original)
+++ branches/release/libs/graph/src/graphml.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -1,18 +1,22 @@
 // Copyright (C) 2006 Tiago de Paula Peixoto <tiago_at_[hidden]>
-// Copyright (C) 2004 The Trustees of Indiana University.
+// Copyright (C) 2004,2009 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
+// Jeremiah Willcock
 // Andrew Lumsdaine
 // Tiago de Paula Peixoto
 
-#include <boost/variant.hpp>
-#include <expat.h>
+#define BOOST_GRAPH_SOURCE
+#include <boost/foreach.hpp>
+#include <boost/optional.hpp>
 #include <boost/graph/graphml.hpp>
-#include <boost/algorithm/string/replace.hpp>
+#include <boost/graph/dll_import_export.hpp>
+#include <boost/property_tree/ptree.hpp>
+#include <boost/property_tree/xml_parser.hpp>
 
 using namespace boost;
 
@@ -20,34 +24,91 @@
 {
 public:
     graphml_reader(mutate_graph& g)
- : m_g(g), m_canonical_vertices(false) { }
+ : m_g(g) { }
+
+ static boost::property_tree::ptree::path_type path(const std::string& str) {
+ return boost::property_tree::ptree::path_type(str, '/');
+ }
+
+ static void get_graphs(const boost::property_tree::ptree& top,
+ std::vector<const boost::property_tree::ptree*>& result) {
+ using boost::property_tree::ptree;
+ BOOST_FOREACH(const ptree::value_type& n, top) {
+ if (n.first == "graph") {
+ result.push_back(&n.second);
+ get_graphs(n.second, result);
+ }
+ }
+ }
     
     void run(std::istream& in)
     {
- const int buffer_size = 4096;
- m_parser = XML_ParserCreateNS(0,'|');
- XML_SetElementHandler(m_parser, &on_start_element, &on_end_element);
- XML_SetCharacterDataHandler(m_parser, &on_character_data);
- XML_SetUserData(m_parser, this);
- char buffer[buffer_size];
-
- bool okay = true;
- do
- {
- in.read(buffer, buffer_size);
- okay = XML_Parse(m_parser, buffer, in.gcount(), in.gcount() == 0);
- }
- while (okay && in.good());
-
- if (!okay)
- {
- std::stringstream s;
- s << "on line " << XML_GetCurrentLineNumber(m_parser)
- <<", column " << XML_GetCurrentColumnNumber(m_parser)
- << ": " << XML_ErrorString(XML_GetErrorCode(m_parser));
- throw parse_error(s.str());
+ using boost::property_tree::ptree;
+ ptree pt;
+ read_xml(in, pt, boost::property_tree::xml_parser::no_comments | boost::property_tree::xml_parser::trim_whitespace);
+ ptree gml = pt.get_child(path("graphml"));
+ // Search for attributes
+ BOOST_FOREACH(const ptree::value_type& child, gml) {
+ if (child.first != "key") continue;
+ std::string id = child.second.get(path("<xmlattr>/id"), "");
+ std::string for_ = child.second.get(path("<xmlattr>/for"), "");
+ std::string name = child.second.get(path("<xmlattr>/attr.name"), "");
+ std::string type = child.second.get(path("<xmlattr>/attr.type"), "");
+ key_kind kind = all_key;
+ if (for_ == "graph") kind = graph_key;
+ else if (for_ == "node") kind = node_key;
+ else if (for_ == "edge") kind = edge_key;
+ else if (for_ == "hyperedge") kind = hyperedge_key;
+ else if (for_ == "port") kind = port_key;
+ else if (for_ == "endpoint") kind = endpoint_key;
+ else if (for_ == "all") kind = all_key;
+ else throw parse_error("Attribute for is not valid: " + for_);
+ m_keys[id] = kind;
+ m_key_name[id] = name;
+ m_key_type[id] = type;
+ boost::optional<std::string> default_ = child.second.get_optional<std::string>(path("default"));
+ if (default_) m_key_default[id] = default_.get();
+ }
+ // Search for graphs
+ std::vector<const ptree*> graphs;
+ get_graphs(gml, graphs);
+ BOOST_FOREACH(const ptree* gr, graphs) {
+ // Search for nodes
+ BOOST_FOREACH(const ptree::value_type& node, *gr) {
+ if (node.first != "node") continue;
+ std::string id = node.second.get<std::string>(path("<xmlattr>/id"));
+ handle_vertex(id);
+ BOOST_FOREACH(const ptree::value_type& attr, node.second) {
+ if (attr.first != "data") continue;
+ std::string key = attr.second.get<std::string>(path("<xmlattr>/key"));
+ std::string value = attr.second.get_value("");
+ handle_node_property(key, id, value);
+ }
+ }
+ }
+ BOOST_FOREACH(const ptree* gr, graphs) {
+ bool default_directed = gr->get<std::string>(path("<xmlattr>/edgedefault")) == "directed";
+ // Search for edges
+ BOOST_FOREACH(const ptree::value_type& edge, *gr) {
+ if (edge.first != "edge") continue;
+ std::string id = edge.second.get<std::string>(path("<xmlattr>/id"));
+ std::string source = edge.second.get<std::string>(path("<xmlattr>/source"));
+ std::string target = edge.second.get<std::string>(path("<xmlattr>/target"));
+ std::string local_directed = edge.second.get(path("<xmlattr>/directed"), "");
+ bool is_directed = (local_directed == "" ? default_directed : local_directed == "true");
+ if (is_directed != m_g.is_directed()) {
+ if (is_directed) throw directed_graph_error(); else throw undirected_graph_error();
+ }
+ size_t old_edges_size = m_edge.size();
+ handle_edge(source, target);
+ BOOST_FOREACH(const ptree::value_type& attr, edge.second) {
+ if (attr.first != "data") continue;
+ std::string key = attr.second.get<std::string>(path("<xmlattr>/key"));
+ std::string value = attr.second.get_value("");
+ handle_edge_property(key, old_edges_size, value);
+ }
         }
- XML_ParserFree(m_parser);
+ }
     }
 
 private:
@@ -62,199 +123,15 @@
         all_key
     };
 
- static void
- on_start_element(void* user_data, const XML_Char *c_name,
- const XML_Char **atts)
- {
- graphml_reader* self = static_cast<graphml_reader*>(user_data);
-
- std::string name(c_name);
- replace_first(name, "http://graphml.graphdrawing.org/xmlns|", "");
-
- if (name == "edge")
- {
- std::string id;
- std::string source, target;
- while (*atts)
- {
- std::string name = *atts++;
- std::string value = *atts++;
-
- if (name == "id") id = value;
- else if (name == "source") source = value;
- else if (name == "target") target = value;
- else if (name == "directed")
- {
- bool edge_is_directed = (value == "directed");
- if (edge_is_directed != self->m_g.is_directed())
- {
- if (edge_is_directed)
- throw directed_graph_error();
- else
- throw undirected_graph_error();
- }
- }
- }
-
- self->m_active_descriptor = self->m_edge.size();
- self->handle_edge(source, target);
- }
- else if (name == "node")
- {
- std::string id;
-
- while (*atts)
- {
- std::string name = *atts++;
- std::string value = *atts++;
-
- if (name == "id") id = value;
- }
-
- self->handle_vertex(id);
- self->m_active_descriptor = id;
- }
- else if (name == "data")
- {
- while (*atts)
- {
- std::string name = *atts++;
- std::string value = *atts++;
-
- if (name == "key") self->m_active_key = value;
- }
- }
- else if (name == "key")
- {
- std::string id;
- std::string key_name;
- std::string key_type;
- key_kind kind = all_key;
-
- while (*atts)
- {
- std::string name = *atts++;
- std::string value = *atts++;
-
- if (name == "id") id = value;
- else if (name == "attr.name") key_name = value;
- else if (name == "attr.type") key_type = value;
- else if (name == "for")
- {
- if (value == "graph") kind = graph_key;
- else if (value == "node") kind = node_key;
- else if (value == "edge") kind = edge_key;
- else if (value == "hyperedge") kind = hyperedge_key;
- else if (value == "port") kind = port_key;
- else if (value == "endpoint") kind = endpoint_key;
- else if (value == "all") kind = all_key;
- else
- {
- std::stringstream s;
- s << "on line " << XML_GetCurrentLineNumber(self->m_parser)
- << ", column " << XML_GetCurrentColumnNumber(self->m_parser)
- << ": unrecognized key kind '" << value << "'";
- throw parse_error(s.str());
- }
- }
- }
-
- self->m_keys[id] = kind;
- self->m_key_name[id] = key_name;
- self->m_key_type[id] = key_type;
- self->m_active_key = id;
- }
- else if (name == "graph")
- {
- while (*atts)
- {
- std::string name = *atts++;
- std::string value = *atts++;
-
- if (name == "edgedefault")
- {
- bool edge_is_directed = (value == "directed");
- if (edge_is_directed != self->m_g.is_directed())
- {
- if (edge_is_directed)
- throw directed_graph_error();
- else
- throw undirected_graph_error();
- }
- }
- else if (name == "parse.nodeids")
- {
- self->m_canonical_vertices = (value == "canonical");
- }
- }
- self->m_active_descriptor = "";
- }
-
- self->m_character_data.clear();
- }
-
- static void
- on_end_element(void* user_data, const XML_Char *c_name)
- {
- graphml_reader* self = static_cast<graphml_reader*>(user_data);
-
- std::string name(c_name);
- replace_first(name, "http://graphml.graphdrawing.org/xmlns|", "");
-
- if (name == "data")
- {
- self->handle_property(self->m_active_key, self->m_active_descriptor,
- self->m_character_data);
- }
- else if (name == "default")
- {
- self->m_key_default[self->m_active_key] = self->m_character_data;
- }
- }
-
- static void
- on_character_data(void* user_data, const XML_Char* s, int len)
- {
- graphml_reader* self = static_cast<graphml_reader*>(user_data);
- self->m_character_data.append(s, len);
- }
-
     void
     handle_vertex(const std::string& v)
     {
         bool is_new = false;
 
- if (m_canonical_vertices)
- {
- size_t id;
-
- //strip leading "n" from name
- try
- {
- id = lexical_cast<size_t>(std::string(v,1));
- }
- catch (bad_lexical_cast)
- {
- std::stringstream s;
- s << "on line " << XML_GetCurrentLineNumber(m_parser)
- << ", column " << XML_GetCurrentColumnNumber(m_parser)
- << ": invalid vertex: " << v;
- throw parse_error(s.str());
- }
-
- while(id >= m_canonical_vertex.size())
- {
- m_canonical_vertex.push_back(m_g.do_add_vertex());
- is_new = true;
- }
- }
- else
+ if (m_vertex.find(v) == m_vertex.end())
         {
- if (m_vertex.find(v) == m_vertex.end())
- {
- m_vertex[v] = m_g.do_add_vertex();
- is_new = true;
- }
+ m_vertex[v] = m_g.do_add_vertex();
+ is_new = true;
         }
 
         if (is_new)
@@ -263,7 +140,7 @@
             for (iter = m_key_default.begin(); iter != m_key_default.end(); ++iter)
             {
                 if (m_keys[iter->first] == node_key)
- handle_property(iter->first, v, iter->second);
+ handle_node_property(iter->first, v, iter->second);
             }
         }
     }
@@ -271,16 +148,7 @@
     any
     get_vertex_descriptor(const std::string& v)
     {
- if (m_canonical_vertices)
- {
- //strip leading "n" from name
- size_t id = lexical_cast<size_t>(std::string(v,1));
- return m_canonical_vertex[id];
- }
- else
- {
- return m_vertex[v];
- }
+ return m_vertex[v];
     }
 
     void
@@ -306,40 +174,18 @@
         for (iter = m_key_default.begin(); iter != m_key_default.end(); ++iter)
         {
             if (m_keys[iter->first] == edge_key)
- handle_property(iter->first, e, iter->second);
+ handle_edge_property(iter->first, e, iter->second);
         }
     }
 
- void handle_property(const std::string& key_id, const variant<std::string,size_t>& descriptor, const std::string& value)
+ void handle_node_property(const std::string& key_id, const std::string& descriptor, const std::string& value)
     {
- try
- {
- if (get<std::string>(&descriptor))
- {
- if (get<std::string>(descriptor) == "")
- m_g.set_graph_property(m_key_name[key_id], value, m_key_type[key_id]);
- else
- m_g.set_vertex_property(m_key_name[key_id], get_vertex_descriptor(get<std::string>(descriptor)), value, m_key_type[key_id]);
- }
- else
- {
- m_g.set_edge_property(m_key_name[key_id], get_edge_descriptor(get<size_t>(descriptor)), value, m_key_type[key_id]);
- }
- }
- catch (parse_error &e)
- {
- std::stringstream s;
- s << "on line " << XML_GetCurrentLineNumber(m_parser)
- << ", column " << XML_GetCurrentColumnNumber(m_parser)
- << ": " << e.error;
- throw parse_error(s.str());
- }
+ m_g.set_vertex_property(m_key_name[key_id], m_vertex[descriptor], value, m_key_type[key_id]);
     }
 
- any
- get_edge_descriptor(size_t e)
+ void handle_edge_property(const std::string& key_id, size_t descriptor, const std::string& value)
     {
- return m_edge[e];
+ m_g.set_edge_property(m_key_name[key_id], m_edge[descriptor], value, m_key_type[key_id]);
     }
 
     mutate_graph& m_g;
@@ -348,19 +194,12 @@
     std::map<std::string, std::string> m_key_type;
     std::map<std::string, std::string> m_key_default;
     std::map<std::string, any> m_vertex;
- std::vector<any> m_canonical_vertex;
     std::vector<any> m_edge;
- variant<std::string, size_t> m_active_descriptor;
- std::string m_active_key;
- std::string m_character_data;
- bool m_canonical_vertices;
- bool m_canonical_edges;
- XML_Parser m_parser;
 };
 
 namespace boost
 {
-void
+void BOOST_GRAPH_DECL
 read_graphml(std::istream& in, mutate_graph& g)
 {
     graphml_reader reader(g);

Modified: branches/release/libs/graph/src/read_graphviz_new.cpp
==============================================================================
--- branches/release/libs/graph/src/read_graphviz_new.cpp (original)
+++ branches/release/libs/graph/src/read_graphviz_new.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -25,6 +25,7 @@
 // Ronald Garcia
 //
 
+#define BOOST_GRAPH_SOURCE
 #include <boost/ref.hpp>
 #include <boost/function/function2.hpp>
 #include <boost/property_map/dynamic_property_map.hpp>
@@ -44,6 +45,7 @@
 #include <boost/regex.hpp>
 #include <boost/function.hpp>
 #include <boost/bind.hpp>
+#include <boost/graph/dll_import_export.hpp>
 #include <boost/graph/graphviz.hpp>
 
 namespace boost {
@@ -75,7 +77,8 @@
       quoted_string, // Only used internally in tokenizer
       eof,
       invalid
- } type;
+ };
+ token_type type;
     std::string normalized_value; // May have double-quotes removed and/or some escapes replaced
     token(token_type type, const std::string& normalized_value)
       : type(type), normalized_value(normalized_value) {}
@@ -227,7 +230,7 @@
               default: assert (!"Definition of punctuation_token does not match switch statement");
             }
           }
- default: assert (!"Definition of punctuation_token does not match switch statement"); std::abort();
+ default: assert (!"Definition of punctuation_token does not match switch statement");
         }
       }
       found = boost::regex_search(begin, end, results, number_token);
@@ -497,7 +500,7 @@
         case token::kw_graph: parse_attr_list(current_graph_props()); break;
         case token::kw_node: parse_attr_list(current().def_node_props); break;
         case token::kw_edge: parse_attr_list(current().def_edge_props); break;
- default: assert (!"Bad attr_stmt case"); std::abort();
+ default: assert (!"Bad attr_stmt case");
       }
     }
 
@@ -790,7 +793,7 @@
 namespace detail {
   namespace graph {
 
- bool read_graphviz(const std::string& str, boost::detail::graph::mutate_graph* mg) {
+ BOOST_GRAPH_DECL bool read_graphviz(const std::string& str, boost::detail::graph::mutate_graph* mg) {
       read_graphviz_detail::parser_result parsed_file;
       read_graphviz_detail::parse_graphviz_from_string(str, parsed_file, mg->is_directed());
       read_graphviz_detail::translate_results_to_graph(parsed_file, mg);

Modified: branches/release/libs/graph/test/Jamfile.v2
==============================================================================
--- branches/release/libs/graph/test/Jamfile.v2 (original)
+++ branches/release/libs/graph/test/Jamfile.v2 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -9,19 +9,12 @@
 
 import modules ;
 
-local optional_tests ;
-
 path-constant PLANAR_INPUT_FILES : ./planar_input_graphs ;
 
 path-constant CYCLE_RATIO_INPUT_FILE : ./cycle_ratio_s382.90.dot ;
 
 path-constant METIS_INPUT_FILE : ./weighted_graph.gr ;
 
-if [ modules.peek : EXPAT_INCLUDE ] && [ modules.peek : EXPAT_LIBPATH ]
-{
- optional_tests += [ run graphml_test.cpp ../build//boost_graph : : "graphml_test.xml" ] ;
-}
-
 test-suite graph_test :
     # test_graphs will eventually defined a framework for testing the structure
     # and implementation of graph data structures and adaptors.
@@ -122,8 +115,7 @@
     [ compile grid_graph_cc.cpp ]
     [ run grid_graph_test.cpp ]
     [ run incremental_components_test.cpp ]
-
- $(optional_tests)
+ [ run graphml_test.cpp ../build//boost_graph : : "graphml_test.xml" ]
     ;
 
 # Run SDB tests only when -sSDB= is set.

Modified: branches/release/libs/graph/test/adj_list_loops.cpp
==============================================================================
--- branches/release/libs/graph/test/adj_list_loops.cpp (original)
+++ branches/release/libs/graph/test/adj_list_loops.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -4,10 +4,6 @@
 // Boost Software License, Version 1.0 (See accompanying file
 // LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
-#if __GNUC__ == 4 && __GNUC_MINOR__ >= 3
-# define BOOST_NO_HASH
-#endif
-
 #include <iostream>
 
 #include <boost/assert.hpp>

Modified: branches/release/libs/graph/test/astar_search_test.cpp
==============================================================================
--- branches/release/libs/graph/test/astar_search_test.cpp (original)
+++ branches/release/libs/graph/test/astar_search_test.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -98,7 +98,7 @@
 public:
   astar_goal_visitor(Vertex goal) : m_goal(goal) {}
   template <class Graph>
- void examine_vertex(Vertex u, Graph& g) {
+ void examine_vertex(Vertex u, Graph&) {
     if(u == m_goal)
       throw found_goal();
   }
@@ -107,7 +107,7 @@
 };
 
 
-int main(int argc, char **argv)
+int main(int, char **)
 {
   
   // specify some types

Modified: branches/release/libs/graph/test/basic_planarity_test.cpp
==============================================================================
--- branches/release/libs/graph/test/basic_planarity_test.cpp (original)
+++ branches/release/libs/graph/test/basic_planarity_test.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -32,7 +32,7 @@
 
 struct NoVertexIndexUpdater
 {
- template <typename Graph> void reset(Graph& g) {}
+ template <typename Graph> void reset(Graph&) {}
 };
 
 

Modified: branches/release/libs/graph/test/bron_kerbosch_all_cliques.cpp
==============================================================================
--- branches/release/libs/graph/test/bron_kerbosch_all_cliques.cpp (original)
+++ branches/release/libs/graph/test/bron_kerbosch_all_cliques.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -65,7 +65,7 @@
 }
 
 int
-main(int argc, char *argv[])
+main(int, char *[])
 {
     typedef undirected_graph<> Graph;
     typedef directed_graph<> DiGraph;

Modified: branches/release/libs/graph/test/closeness_centrality.cpp
==============================================================================
--- branches/release/libs/graph/test/closeness_centrality.cpp (original)
+++ branches/release/libs/graph/test/closeness_centrality.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -44,7 +44,7 @@
     add_edge(v[2], v[0], g);
     add_edge(v[3], v[4], g);
     add_edge(v[4], v[0], g);
-};
+}
 
 
 template <typename Graph>
@@ -124,7 +124,7 @@
 }
 
 int
-main(int argc, char *argv[])
+main(int, char *[])
 {
     typedef undirected_graph<> Graph;
     typedef directed_graph<> Digraph;

Modified: branches/release/libs/graph/test/clustering_coefficient.cpp
==============================================================================
--- branches/release/libs/graph/test/clustering_coefficient.cpp (original)
+++ branches/release/libs/graph/test/clustering_coefficient.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -40,7 +40,7 @@
     add_edge(v[2], v[0], g);
     add_edge(v[3], v[4], g);
     add_edge(v[4], v[0], g);
-};
+}
 
 template <typename Graph>
 void test_undirected()
@@ -95,7 +95,7 @@
 }
 
 int
-main(int argc, char *argv[])
+main(int, char *[])
 {
     typedef undirected_graph<> Graph;
     typedef directed_graph<> Digraph;

Modified: branches/release/libs/graph/test/core_numbers_test.cpp
==============================================================================
--- branches/release/libs/graph/test/core_numbers_test.cpp (original)
+++ branches/release/libs/graph/test/core_numbers_test.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -54,7 +54,7 @@
         make_iterator_property_map(core_nums.begin(), get(vertex_index,G)));
 
     for (size_t i=0; i<num_vertices(G); ++i) {
- printf("vertex %3zu : %i\n", i, core_nums[i]);
+ printf("vertex %3lu : %i\n", (unsigned long)i, core_nums[i]);
     }
 
     int correct[21]={1,2,2,3,3,3,3,3,2,3,2,1,1,3,3,0,2,2,2,2,1};
@@ -85,7 +85,7 @@
         make_iterator_property_map(core_nums.begin(), get(vertex_index,G)));
 
     for (size_t i=0; i<num_vertices(G); ++i) {
- printf("vertex %3zu : %i\n", i, core_nums[i]);
+ printf("vertex %3lu : %i\n", (unsigned long)i, core_nums[i]);
     }
 
     int correct[3]={-1,-1,-4};
@@ -114,7 +114,7 @@
         make_iterator_property_map(core_nums.begin(), get(vertex_index,G)));
 
     for (size_t i=0; i<num_vertices(G); ++i) {
- printf("vertex %3zu : %i\n", i, core_nums[i]);
+ printf("vertex %3lu : %i\n", (unsigned long)i, core_nums[i]);
     }
 
     int correct[5]={1,1,1,1,1};
@@ -126,7 +126,7 @@
     return 0;
 }
 
-int main(int argc, char **argv) {
+int main(int, char **) {
   int nfail = 0, ntotal = 0;
   int rval;
 

Modified: branches/release/libs/graph/test/csr_graph_test.cpp
==============================================================================
--- branches/release/libs/graph/test/csr_graph_test.cpp (original)
+++ branches/release/libs/graph/test/csr_graph_test.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -13,9 +13,6 @@
 # undef _GLIBCXX_DEBUG
 #endif
 
-// Use new CSR interface
-#define BOOST_GRAPH_USE_NEW_CSR_INTERFACE
-
 // Test for the compressed sparse row graph type
 #include <boost/graph/compressed_sparse_row_graph.hpp>
 #include <boost/graph/adjacency_list.hpp>
@@ -119,29 +116,15 @@
 template <typename Structure>
 void check_consistency_one(const Structure& g) {
   // Do a bunch of tests on the graph internal data
-#ifndef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
- // Check that m_last_source is valid
- BOOST_CHECK(g.m_last_source <= g.m_rowstart.size() - 1);
-#endif // !BOOST_GRAPH_USE_NEW_CSR_INTERFACE
   // Check that m_rowstart entries are valid, and that entries after
   // m_last_source + 1 are all zero
   BOOST_CHECK(g.m_rowstart[0] == 0);
   for (size_t i = 0;
-#ifdef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
        i < g.m_rowstart.size() - 1;
-#else // !BOOST_GRAPH_USE_NEW_CSR_INTERFACE
- i < g.m_last_source;
-#endif // BOOST_GRAPH_USE_NEW_CSR_INTERFACE
        ++i) {
     BOOST_CHECK(g.m_rowstart[i + 1] >= g.m_rowstart[i]);
     BOOST_CHECK(g.m_rowstart[i + 1] <= g.m_rowstart.back());
   }
-#ifndef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
- for (size_t i = g.m_last_source + 1;
- i < g.m_rowstart.size(); ++i) {
- BOOST_CHECK(g.m_forward.m_rowstart[i] == 0);
- }
-#endif // !BOOST_GRAPH_USE_NEW_CSR_INTERFACE
   // Check that m_column entries are within range
   for (size_t i = 0; i < g.m_rowstart.back(); ++i) {
     BOOST_CHECK(g.m_column[i] < g.m_rowstart.size() - 1);
@@ -217,7 +200,6 @@
                       g3, boost::identity_property_map(),
                       boost::identity_property_map());
 
-#ifdef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
   // Check constructing a graph using in-place modification of vectors
   {
     std::vector<std::size_t> sources(num_edges(g2));
@@ -287,32 +269,9 @@
                         g3a, boost::identity_property_map(),
                         boost::identity_property_map());
   }
-#endif // BOOST_GRAPH_USE_NEW_CSR_INTERFACE
 
   CSRGraphT::edge_iterator ei, ei_end;
 
-#ifndef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
- // Check constructing a graph using add_edge and add_vertices
- CSRGraphT g4;
- BOOST_CHECK(num_vertices(g4) == 0);
- std::size_t first_vert = add_vertices(num_vertices(g3), g4);
- BGL_FORALL_VERTICES(v, g4, CSRGraphT)
- g4[v].index = v;
-
- BOOST_CHECK(first_vert == 0);
- BOOST_CHECK(num_vertices(g4) == num_vertices(g3));
- int i;
- for (boost::tie(ei, ei_end) = edges(g3), i = 0; ei != ei_end; ++ei, ++i) {
- CSRGraphT::edge_descriptor e = add_edge(source(*ei, g3), target(*ei, g3), g4);
- BOOST_CHECK(source(e, g4) == source(*ei, g3));
- BOOST_CHECK(target(e, g4) == target(*ei, g3));
- if (i % 13 == 0) check_consistency(g4);
- }
- assert_graphs_equal(g3, boost::identity_property_map(),
- g4, boost::identity_property_map(),
- boost::identity_property_map());
-#endif // !BOOST_GRAPH_USE_NEW_CSR_INTERFACE
-
   // Check edge_from_index (and implicitly the edge_index property map) for
   // each edge in g2
   std::size_t last_src = 0, last_tgt = 0;
@@ -442,7 +401,7 @@
 int test_main(int argc, char* argv[])
 {
   // Optionally accept a seed value
- int seed = std::time(0);
+ int seed = int(std::time(0));
   if (argc > 1) seed = boost::lexical_cast<int>(argv[1]);
 
   std::cout << "Seed = " << seed << std::endl;
@@ -456,29 +415,10 @@
   // graph_test(1000, 0.1, seed);
   graph_test(1000, 0.001, seed);
   graph_test(1000, 0.0005, seed);
-#ifndef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
- {
- std::cout << "Testing partially constructed CSR graph" << std::endl;
- CSRGraphT g;
- add_vertices(std::size_t(5), g);
- add_edge(std::size_t(1), std::size_t(2), g);
- check_consistency(g);
- add_edge(std::size_t(2), std::size_t(3), g);
- check_consistency(g);
- add_edge(std::size_t(2), std::size_t(4), g);
- check_consistency(g);
- CSRGraphT::edge_iterator ei, ei_end;
- for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
- BOOST_CHECK(edge_from_index(get(boost::edge_index, g, *ei), g) == *ei);
- }
- graph_test(g);
- }
-#endif // !BOOST_GRAPH_USE_NEW_CSR_INTERFACE
 
   test_graph_properties();
   test_vertex_and_edge_properties();
 
-#ifdef BOOST_GRAPH_USE_NEW_CSR_INTERFACE
   {
     std::cout << "Testing CSR graph built from unsorted edges" << std::endl;
     std::pair<int, int> unsorted_edges[] = {std::make_pair(5, 0), std::make_pair(3, 2), std::make_pair(4, 1), std::make_pair(4, 0), std::make_pair(0, 2), std::make_pair(5, 2)};
@@ -506,7 +446,6 @@
                         g3, boost::identity_property_map(),
                         boost::identity_property_map());
   }
-#endif // BOOST_GRAPH_USE_NEW_CSR_INTERFACE
 
   return 0;
 }

Modified: branches/release/libs/graph/test/degree_centrality.cpp
==============================================================================
--- branches/release/libs/graph/test/degree_centrality.cpp (original)
+++ branches/release/libs/graph/test/degree_centrality.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -35,7 +35,7 @@
     add_edge(v[2], v[0], g);
     add_edge(v[3], v[4], g);
     add_edge(v[4], v[0], g);
-};
+}
 
 template <typename Graph>
 void test_undirected()
@@ -112,7 +112,7 @@
 }
 
 int
-main(int argc, char *argv[])
+main(int, char *[])
 {
     typedef undirected_graph<> Graph;
     typedef directed_graph<> Digraph;

Modified: branches/release/libs/graph/test/dfs.cpp
==============================================================================
--- branches/release/libs/graph/test/dfs.cpp (original)
+++ branches/release/libs/graph/test/dfs.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -31,15 +31,15 @@
     m_discover_time(d), m_finish_time(f), m_time(0) { }
 
   template <class Vertex, class Graph>
- void initialize_vertex(Vertex u, Graph& g) {
+ void initialize_vertex(Vertex u, Graph&) {
     BOOST_CHECK( boost::get(m_color, u) == Color::white() );
   }
   template <class Vertex, class Graph>
- void start_vertex(Vertex u, Graph& g) {
+ void start_vertex(Vertex u, Graph&) {
     BOOST_CHECK( boost::get(m_color, u) == Color::white() );
   }
   template <class Vertex, class Graph>
- void discover_vertex(Vertex u, Graph& g) {
+ void discover_vertex(Vertex u, Graph&) {
     using namespace boost;
     BOOST_CHECK( get(m_color, u) == Color::gray() );
     BOOST_CHECK( get(m_color, get(m_parent, u)) == Color::gray() );
@@ -69,7 +69,7 @@
     BOOST_CHECK( get(m_color, target(e, g)) == Color::black() );
   }
   template <class Vertex, class Graph>
- void finish_vertex(Vertex u, Graph& g) {
+ void finish_vertex(Vertex u, Graph&) {
     using namespace boost;
     BOOST_CHECK( get(m_color, u) == Color::black() );
 

Modified: branches/release/libs/graph/test/dominator_tree_test.cpp
==============================================================================
--- branches/release/libs/graph/test/dominator_tree_test.cpp (original)
+++ branches/release/libs/graph/test/dominator_tree_test.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -294,4 +294,4 @@
   }
 
   return 0;
-};
+}

Modified: branches/release/libs/graph/test/eccentricity.cpp
==============================================================================
--- branches/release/libs/graph/test/eccentricity.cpp (original)
+++ branches/release/libs/graph/test/eccentricity.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -44,7 +44,7 @@
     add_edge(v[2], v[0], g);
     add_edge(v[3], v[4], g);
     add_edge(v[4], v[0], g);
-};
+}
 
 
 template <typename Graph>
@@ -134,7 +134,7 @@
 
 
 int
-main(int argc, char *argv[])
+main(int, char *[])
 {
     typedef undirected_graph<> Graph;
     typedef directed_graph<> Digraph;

Modified: branches/release/libs/graph/test/grid_graph_cc.cpp
==============================================================================
--- branches/release/libs/graph/test/grid_graph_cc.cpp (original)
+++ branches/release/libs/graph/test/grid_graph_cc.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -14,7 +14,7 @@
 #define DIMENSIONS 3
 using namespace boost;
 
-int main (int argc, char* argv[]) {
+int main (int, char*[]) {
 
   typedef grid_graph<DIMENSIONS> Graph;
   typedef graph_traits<Graph>::vertex_descriptor Vertex;
@@ -30,4 +30,4 @@
   function_requires<ReadablePropertyGraphConcept<Graph, Edge, edge_index_t> >();
 
   return (0);
-};
+}

Modified: branches/release/libs/graph/test/grid_graph_test.cpp
==============================================================================
--- branches/release/libs/graph/test/grid_graph_test.cpp (original)
+++ branches/release/libs/graph/test/grid_graph_test.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -110,7 +110,7 @@
     for (int dimension_index = 0;
          dimension_index < DIMENSIONS;
          ++dimension_index) {
- BOOST_REQUIRE((current_vertex[dimension_index] >= 0) &&
+ BOOST_REQUIRE(/*(current_vertex[dimension_index] >= 0) && */ // Always true
                    (current_vertex[dimension_index] < lengths[dimension_index]));
     }
 
@@ -194,8 +194,8 @@
       get(boost::vertex_index, graph, target(current_edge, graph));
 
     BOOST_REQUIRE(source_index != target_index);
- BOOST_REQUIRE((source_index >= 0) && (source_index < num_vertices(graph)));
- BOOST_REQUIRE((target_index >= 0) && (target_index < num_vertices(graph)));
+ BOOST_REQUIRE(/* (source_index >= 0) : always true && */ (source_index < num_vertices(graph)));
+ BOOST_REQUIRE(/* (target_index >= 0) : always true && */ (target_index < num_vertices(graph)));
 
     // Verify that the edge is listed as existing in both directions
     BOOST_REQUIRE(edge(source(current_edge, graph), target(current_edge, graph), graph).second);

Modified: branches/release/libs/graph/test/is_straight_line_draw_test.cpp
==============================================================================
--- branches/release/libs/graph/test/is_straight_line_draw_test.cpp (original)
+++ branches/release/libs/graph/test/is_straight_line_draw_test.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -24,7 +24,7 @@
 };
 
 
-int test_main(int argc, char* argv [])
+int test_main(int, char*[])
 {
   typedef adjacency_list< vecS, vecS, undirectedS,
                           property<vertex_index_t, int>

Modified: branches/release/libs/graph/test/labeled_graph.cpp
==============================================================================
--- branches/release/libs/graph/test/labeled_graph.cpp (original)
+++ branches/release/libs/graph/test/labeled_graph.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -8,8 +8,6 @@
 #include <string>
 #include <set>
 
-#define BOOST_NO_HASH
-
 #include <boost/assert.hpp>
 #include <boost/range.hpp>
 

Modified: branches/release/libs/graph/test/layout_test.cpp
==============================================================================
--- branches/release/libs/graph/test/layout_test.cpp (original)
+++ branches/release/libs/graph/test/layout_test.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -108,8 +108,8 @@
 
   template<typename Graph>
   bool operator()(double delta_p,
- typename boost::graph_traits<Graph>::vertex_descriptor p,
- const Graph& g,
+ typename boost::graph_traits<Graph>::vertex_descriptor /*p*/,
+ const Graph& /*g*/,
                   bool global)
   {
     if (global) {

Modified: branches/release/libs/graph/test/make_bicon_planar_test.cpp
==============================================================================
--- branches/release/libs/graph/test/make_bicon_planar_test.cpp (original)
+++ branches/release/libs/graph/test/make_bicon_planar_test.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -62,7 +62,7 @@
 
 struct NoVertexIndexUpdater
 {
- template <typename Graph> void update(Graph& g) {}
+ template <typename Graph> void update(Graph&) {}
 };
 
 

Modified: branches/release/libs/graph/test/make_maximal_planar_test.cpp
==============================================================================
--- branches/release/libs/graph/test/make_maximal_planar_test.cpp (original)
+++ branches/release/libs/graph/test/make_maximal_planar_test.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -64,7 +64,7 @@
 
 struct NoVertexIndexUpdater
 {
- template <typename Graph> void update(Graph& g) {}
+ template <typename Graph> void update(Graph&) {}
 };
 
 

Modified: branches/release/libs/graph/test/matching_test.cpp
==============================================================================
--- branches/release/libs/graph/test/matching_test.cpp (original)
+++ branches/release/libs/graph/test/matching_test.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -37,7 +37,7 @@
 template <typename Graph>
 struct vertex_index_installer
 {
- static void install(Graph& g) {}
+ static void install(Graph&) {}
 };
 
 
@@ -346,7 +346,7 @@
 
 
 
-int test_main(int argc, char* argv[])
+int test_main(int, char*[])
 {
 
   matching_test<undirected_graph>(10, "adjacency_list (using vectors)");

Modified: branches/release/libs/graph/test/mcgregor_subgraphs_test.cpp
==============================================================================
--- branches/release/libs/graph/test/mcgregor_subgraphs_test.cpp (original)
+++ branches/release/libs/graph/test/mcgregor_subgraphs_test.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -192,8 +192,8 @@
   template <typename CorrespondenceMapFirstToSecond,
             typename CorrespondenceMapSecondToFirst>
   bool operator()(CorrespondenceMapFirstToSecond correspondence_map_1_to_2,
- CorrespondenceMapSecondToFirst correspondence_map_2_to_1,
- typename graph_traits<Graph>::vertices_size_type subgraph_size) {
+ CorrespondenceMapSecondToFirst /*correspondence_map_2_to_1*/,
+ typename graph_traits<Graph>::vertices_size_type /*subgraph_size*/) {
 
     typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
 

Modified: branches/release/libs/graph/test/mean_geodesic.cpp
==============================================================================
--- branches/release/libs/graph/test/mean_geodesic.cpp (original)
+++ branches/release/libs/graph/test/mean_geodesic.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -44,7 +44,7 @@
     add_edge(v[2], v[0], g);
     add_edge(v[3], v[4], g);
     add_edge(v[4], v[0], g);
-};
+}
 
 
 template <typename Graph>
@@ -132,7 +132,7 @@
 
 
 int
-main(int argc, char *argv[])
+main(int, char *[])
 {
     typedef undirected_graph<> Graph;
     typedef directed_graph<> Digraph;

Modified: branches/release/libs/graph/test/metric_tsp_approx.cpp
==============================================================================
--- branches/release/libs/graph/test/metric_tsp_approx.cpp (original)
+++ branches/release/libs/graph/test/metric_tsp_approx.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -42,7 +42,7 @@
                         const PointContainer& points,
                         WeightMap wmap, // Property maps passed by value
                         VertexIndexMap vmap, // Property maps passed by value
- int sz)
+ int /*sz*/)
 {
     using namespace boost;
     using namespace std;

Modified: branches/release/libs/graph/test/named_vertices_test.cpp
==============================================================================
--- branches/release/libs/graph/test/named_vertices_test.cpp (original)
+++ branches/release/libs/graph/test/named_vertices_test.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -58,7 +58,7 @@
 typedef adjacency_list<vecS, vecS, directedS, City> RoadMap;
 typedef graph_traits<RoadMap>::vertex_descriptor Vertex;
 
-int test_main(int argc, char* argv[])
+int test_main(int, char*[])
 {
   RoadMap map;
 

Modified: branches/release/libs/graph/test/r_c_shortest_paths_test.cpp
==============================================================================
--- branches/release/libs/graph/test/r_c_shortest_paths_test.cpp (original)
+++ branches/release/libs/graph/test/r_c_shortest_paths_test.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -199,7 +199,7 @@
 };
 // end data structures for shortest path problem with time windows (spptw)
 
-int test_main(int argc, char* argv[])
+int test_main(int, char*[])
 {
   SPPRC_Example_Graph g;
   add_vertex( SPPRC_Example_Graph_Vert_Prop( 0, 0, 1000000000 ), g );

Modified: branches/release/libs/graph/test/serialize.cpp
==============================================================================
--- branches/release/libs/graph/test/serialize.cpp (original)
+++ branches/release/libs/graph/test/serialize.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -21,7 +21,7 @@
   std::string name;
 
   template<class Archive>
- void serialize(Archive & ar, const unsigned int version) {
+ void serialize(Archive & ar, const unsigned int /*version*/) {
     ar & BOOST_SERIALIZATION_NVP(name);
   }
 };
@@ -30,7 +30,7 @@
   std::string name;
 
   template<class Archive>
- void serialize(Archive & ar, const unsigned int version) {
+ void serialize(Archive & ar, const unsigned int /*version*/) {
     ar & BOOST_SERIALIZATION_NVP(name);
   }
 };

Modified: branches/release/libs/graph/test/subgraph.cpp
==============================================================================
--- branches/release/libs/graph/test/subgraph.cpp (original)
+++ branches/release/libs/graph/test/subgraph.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -18,7 +18,7 @@
 
 // UNDER CONSTRUCTION
 
-int test_main(int argc, char* argv[])
+int test_main(int, char*[])
 {
   using namespace boost;
   typedef adjacency_list<vecS, vecS, bidirectionalS,

Modified: branches/release/libs/graph/test/subgraph_bundled.cpp
==============================================================================
--- branches/release/libs/graph/test/subgraph_bundled.cpp (original)
+++ branches/release/libs/graph/test/subgraph_bundled.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -8,10 +8,6 @@
 
 #include <boost/random/mersenne_twister.hpp>
 
-#if !defined(BOOST_NO_HASH)
-# define BOOST_NO_HASH
-#endif
-
 #include <boost/graph/adjacency_list.hpp>
 #include <boost/graph/subgraph.hpp>
 #include <boost/graph/random.hpp>
@@ -42,7 +38,7 @@
 typedef graph_traits<Subgraph>::vertex_iterator VertexIter;
 typedef graph_traits<Subgraph>::edge_iterator EdgeIter;
 
-int test_main(int argc, char* argv[])
+int test_main(int, char*[])
 {
   mt19937 gen;
   for (int t = 0; t < 100; t += 5) {

Modified: branches/release/libs/graph/test/subgraph_props.cpp
==============================================================================
--- branches/release/libs/graph/test/subgraph_props.cpp (original)
+++ branches/release/libs/graph/test/subgraph_props.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -5,10 +5,6 @@
 
 #include <iostream>
 
-#if !defined(BOOST_NO_HASH)
-# define BOOST_NO_HASH
-#endif
-
 #include <boost/graph/adjacency_list.hpp>
 #include <boost/graph/subgraph.hpp>
 #include "typestr.hpp"

Modified: branches/release/libs/graph/test/test_construction.hpp
==============================================================================
--- branches/release/libs/graph/test/test_construction.hpp (original)
+++ branches/release/libs/graph/test/test_construction.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -62,7 +62,7 @@
 { }
 
 template <typename Graph>
-void build_property_graph(Graph const& g, boost::mpl::true_, boost::mpl::false_) {
+void build_property_graph(Graph const&, boost::mpl::true_, boost::mpl::false_) {
     using namespace boost;
     BOOST_CONCEPT_ASSERT((VertexMutablePropertyGraphConcept<Graph>));
     typedef typename vertex_property<Graph>::type VertexProp;

Modified: branches/release/libs/graph/test/test_destruction.hpp
==============================================================================
--- branches/release/libs/graph/test/test_destruction.hpp (original)
+++ branches/release/libs/graph/test/test_destruction.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -15,7 +15,7 @@
 //@{
 // This will basically catch adjacency matrices, which don't get torn down.
 template <typename Graph, typename VertexSet, typename Remove, typename Label>
-void destroy_graph(Graph& g, VertexSet const& verts, Remove, Label)
+void destroy_graph(Graph&, VertexSet const&, Remove, Label)
 { }
 
 // This matches MutableGraph, so just remove a vertex and then clear.
@@ -33,7 +33,7 @@
 
 // This will match labeled graphs.
 template <typename Graph, typename VertexSet>
-void destroy_graph(Graph& g, VertexSet const& verts, boost::mpl::false_, boost::mpl::true_) {
+void destroy_graph(Graph& g, VertexSet const&, boost::mpl::false_, boost::mpl::true_) {
     using namespace boost;
     BOOST_CONCEPT_ASSERT((VertexListGraphConcept<Graph>));
     // function_requires< VeretexMutableGraphConcept<Graph> >();
@@ -84,7 +84,7 @@
 }
 
 template <typename Graph, typename VertexSet>
-void disconnect_graph(Graph& g, VertexSet const& verts, boost::mpl::true_) {
+void disconnect_graph(Graph& g, VertexSet const&, boost::mpl::true_) {
     using namespace boost;
     BOOST_CONCEPT_ASSERT((EdgeListGraphConcept<Graph>));
     // BOOST_CONCEPT_ASSERT((EdgeMutableGraphConcept<Graph>));

Modified: branches/release/libs/graph/test/test_direction.hpp
==============================================================================
--- branches/release/libs/graph/test/test_direction.hpp (original)
+++ branches/release/libs/graph/test/test_direction.hpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -49,7 +49,7 @@
 }
 
 template <typename Graph, typename VertexSet>
-void test_outdirected_graph(Graph const& g, VertexSet const& verts, boost::mpl::false_)
+void test_outdirected_graph(Graph const&, VertexSet const&, boost::mpl::false_)
 { }
 //@}
 
@@ -88,7 +88,7 @@
 }
 
 template <typename Graph, typename VertexSet>
-void test_indirected_graph(Graph const& g, VertexSet const& verts, boost::mpl::false_)
+void test_indirected_graph(Graph const&, VertexSet const&, boost::mpl::false_)
 { }
 //@}
 
@@ -122,7 +122,7 @@
 }
 
 template <typename Graph, typename VertexSet>
-void test_undirected_graph(Graph const& g, VertexSet const& verts, boost::mpl::false_)
+void test_undirected_graph(Graph const&, VertexSet const&, boost::mpl::false_)
 { }
 //@}
 

Modified: branches/release/libs/graph/test/test_graphs.cpp
==============================================================================
--- branches/release/libs/graph/test/test_graphs.cpp (original)
+++ branches/release/libs/graph/test/test_graphs.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -6,8 +6,6 @@
 
 #include <iostream>
 
-#define BOOST_NO_HASH
-
 #include "typestr.hpp"
 
 #include <boost/graph/adjacency_list.hpp>

Modified: branches/release/libs/graph/test/tiernan_all_cycles.cpp
==============================================================================
--- branches/release/libs/graph/test/tiernan_all_cycles.cpp (original)
+++ branches/release/libs/graph/test/tiernan_all_cycles.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -66,7 +66,7 @@
 }
 
 int
-main(int argc, char *argv[])
+main(int, char *[])
 {
     typedef undirected_graph<> Graph;
     typedef directed_graph<> DiGraph;

Modified: branches/release/libs/graph_parallel/test/adjlist_remove_test.cpp
==============================================================================
--- branches/release/libs/graph_parallel/test/adjlist_remove_test.cpp (original)
+++ branches/release/libs/graph_parallel/test/adjlist_remove_test.cpp 2009-12-28 22:50:53 EST (Mon, 28 Dec 2009)
@@ -52,14 +52,14 @@
   Vertex w = *vi++;
   BOOST_CHECK(vi == vertices(g).second);
   
- BOOST_CHECK(process_id(g.process_group()) == 0 && out_degree(u, g) == 1
- || process_id(g.process_group()) == 1 && in_degree(u, g) == 1);
+ BOOST_CHECK((process_id(g.process_group()) == 0 && out_degree(u, g) == 1)
+ || (process_id(g.process_group()) == 1 && in_degree(u, g) == 1));
   
- BOOST_CHECK(process_id(g.process_group()) == 0 && out_degree(v, g) == 1
- || process_id(g.process_group()) == 1 && in_degree(v, g) == 1);
+ BOOST_CHECK((process_id(g.process_group()) == 0 && out_degree(v, g) == 1)
+ || (process_id(g.process_group()) == 1 && in_degree(v, g) == 1));
 
- BOOST_CHECK(process_id(g.process_group()) == 0 && out_degree(w, g) == 1
- || process_id(g.process_group()) == 1 && in_degree(w, g) == 1);
+ BOOST_CHECK((process_id(g.process_group()) == 0 && out_degree(w, g) == 1)
+ || (process_id(g.process_group()) == 1 && in_degree(w, g) == 1));
 
   // Remove edges
   if (process_id(g.process_group()) == 0) {


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk