Boost logo

Boost :

From: Asger Alstrup Nielsen (alstrup_at_[hidden])
Date: 2001-07-10 04:42:53


Hi,

I've been a happy user of GGCL for a long time. I'm using Visual Studio
6, with the latest service pack. Since then, GGCL has turned into BGL,
and the other day, I decided to port my application to the latest Boost
version.

However, I have given up now, because I've ran into too many problems.
I don't know how to solve many of them, because the documentation does
not help me.
It simply seems obsolete in many places.

The most problems appear in the context of examples that show how to use
dijkstra_shortest_paths. I think it would be a good idea to review all
of those places.

For instance, it is not clear to me which visitor to use together with
Dijkstra. The documentation talks about the ucs_visitor, but that does
not seem to work. These are the errors I get when I try to derive from
the ucs_visitor:

C:\BOOST\boost/graph/uniform_cost_search.hpp(173) : error C2146: syntax
error : missing ';' before identifier 'm_predecessor'
        C:\BOOST\boost/graph/uniform_cost_search.hpp(178) : see
reference to class template instantiation
'boost::detail::ucs_bfs_visitor<UniformCostVisitor,UpdatableQueue,Weight
Map,DistanceMap,BinaryFunction,BinaryPredicate>' being compiled
C:\BOOST\boost/graph/uniform_cost_search.hpp(173) : error C2501:
'PredecessorMap' : missing storage-class or type specifiers
        C:\BOOST\boost/graph/uniform_cost_search.hpp(178) : see
reference to class template instantiation
'boost::detail::ucs_bfs_visitor<UniformCostVisitor,UpdatableQueue,Weight
Map,DistanceMap,BinaryFunction,BinaryPredicate>' being compiled
C:\BOOST\boost/graph/uniform_cost_search.hpp(173) : error C2501:
'm_predecessor' : missing storage-class or type specifiers
        C:\BOOST\boost/graph/uniform_cost_search.hpp(178) : see
reference to class template instantiation
'boost::detail::ucs_bfs_visitor<UniformCostVisitor,UpdatableQueue,Weight
Map,DistanceMap,BinaryFunction,BinaryPredicate>' being compiled

On the other hand, there is a dijkstra_visitor in the code, which at
least can compile. But that one is not documented.

Sigh.

Here's a list of the problems in the documentation, I have identified so
far:

quick_tour.html
---------------
Section "Adding some color to your graph":
  "...property map object for an internal property."
    ->
  "...property map object for an internal stored property."

Section "Extending algorithms with visitors":
  "...the visitor we create must be a (a UniformCostVisitor)."
    ->
  ?

  In the code example, an #include is missing.
  Also, should the visitor derive from ucs_visitor?
  It seems there is a thing called dijkstra_visitor now,
  although I can't find the documentation for that.

  The paragraph after the code snippet talks about an
  edge_filter, explore methods and other stuff that does
  not appear in the code.

  The third code snippet calls a version of
  dijkstra_shortest_paths that does not seem to exist
  anymore.

using_property_maps.html
------------------------

Section "Interior properties":
  "...the second argument is the graph object. ."
    ->
  "...the second argument is the graph object."

  Once again, a call to Dijkstra seems wrong. The last
  paragraphs seem obsolete, because there is only one
  version of Dijkstra now.

kevin_bacon.html
----------------

Section "Applying shortest paths":
  "The documentation for variant 4 of dijkstra_shortest_paths..."
  seems obsolete.

At the moment, I get this compile error:

C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\limits(61) : error
C2440: 'type cast' : cannot convert from 'const int' to 'struct
boost::detail::error_property_not_found'
        No constructor could take the source type, or constructor
overload resolution was ambiguous
        C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\limits(61)
: while compiling class-template member function 'struct
boost::detail::error_property_not_found __cdecl
std::numeric_limits<struct
boost::detail::error_property_not_found>::max(void)'

and I've given up. I realize that I might be missing a property map in
my graph, or in the invocation of dijkstra, but which?

Thank you,

Asger Alstrup Nielsen


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk