1 The reason for the problem you suggest had been considered in the file <boost/graph/stanford_graph.hpp>, such as
2 There are several reasons I don't using "const Graph*" as the type of the graph object.
more and more errors come up, I find that the graph object *inputG should be modified in
the dijkstra_shortest_path algorithm.
(2) The Graph type point to the const graph object can point to the not const graph such as
I have no idea what's the reason for the problem.
On Sun, May 23, 2010 at 2:15 AM, Jeremiah Willcock <
jewillco@osl.iu.edu> wrote:
>
> On Sat, 22 May 2010, smallpang smallpang wrote:
>
>> dear everyone
>>
>> I want to construct multicast tree base on the network topology generated by the stanford graph.
>> The source code below can run without error, and have the right output:
>> The file is open!
>> m:28
>> n:10
>>
>> But when I add the algrithom dijkstra_shortest_paths.
>> The error messages show as below:
>> Description Resource Path Location Type
>> no matching function for call to ‘num_vertices(Graph* const&)’ MulticastTree2 line 190,
>> external location: /usr/include/boost/graph/dijkstra_shortest_paths.hpp C/C++ Problem
>> Description Resource Path Location Type
>> no matching function for call to ‘out_edges(Vertex*&, Graph* const&)’ MulticastTree2 line 76,
>> external location: /usr/include/boost/graph/breadth_first_search.hpp C/C++ Problem
>> Description Resource Path Location Type
>> no matching function for call to ‘vertices(Graph* const&)’ MulticastTree2 line 375,
>> external location: /usr/include/boost/graph/dijkstra_shortest_paths.hpp C/C++ Problem
>>
>> I find the num_vertices\out_edges\vertices are redefined in the stanford_graph.hpp.
>> So I change the order of the include files as below:
>> #include <boost/graph/stanford_graph.hpp>
>> #include <boost/graph/dijkstra_shortest_paths.hpp>
>>
>> The errors above disappear, and New errors come up:
>> Description Resource Path Location Type
>> ‘g’ was not declared in this scope MulticastTree2 line 408,
>> external location: /usr/include/boost/graph/named_function_params.hpp C/C++ Problem
>> Description Resource Path Location Type
>> ‘t’ was not declared in this scope MulticastTree2 line 408,
>> external location: /usr/include/boost/graph/named_function_params.hpp C/C++ Problem
>> Description Resource Path Location Type
>> ‘u’ was not declared in this scope MulticastTree2 line 463,
>> external location: /usr/include/boost/pending/relaxed_heap.hpp C/C++ Problem
>> Description Resource Path Location Type
>> expected ‘,’ or ‘...’ before ‘.’ token MulticastTree2 line 402,
>> external location: /usr/include/boost/graph/named_function_params.hpp C/C++ Problem
>> Description Resource Path Location Type
>> expected initializer before ‘.’ token MulticastTree2 line 462,
>> external location: /usr/include/boost/pending/relaxed_heap.hpp C/C++ Problem
>>
>> It's confusing for me, can you tell me what's the problem is
>> and any way i can try to solve the problems above.
>
> It looks like (for the second include order) that many places in BGL use Graph as a template parameter name, so that is likely the problem there; please use the first ordering. For the first one, that may be fixable by using "const Graph*" as the type of your graph object (and changing the rest of the Graph*'s to that as well). See if that changes any of the errors.
>
> -- Jeremiah Willcock
> _______________________________________________
> Boost-users mailing list
>
Boost-users@lists.boost.org>
http://lists.boost.org/mailman/listinfo.cgi/boost-users