Boost logo

Boost Users :

Subject: Re: [Boost-users] [graph] predecessor_recorder and VertexList=listS
From: M. Siebeneicher (trashing_at_[hidden])
Date: 2008-11-12 08:57:35


-------- Original-Nachricht --------
> Datum: Wed, 12 Nov 2008 08:33:08 -0500
> Von: "Andrew Sutton" <andrew.n.sutton_at_[hidden]>
> An: boost-users_at_[hidden]
> Betreff: Re: [Boost-users] [graph] predecessor_recorder and VertexList=listS

> >
> > thank you for your suggestions. Unfortunately I still have compile
> > problems. I tried both ways, indexing by bundled properties and by using
> an
> > external map.
> >
> > Inside the call of breadth_first_search(...) both ways end with the same
> > compiler error (partially in german) :
> >
>
> It's hard to say what's going on without seeing the actual call to BFS -
> although the errors are a little odd. I'm not sure why, for example, some
> of
> the top-level template parameters seem to be allocators. It looks like you
> might not be creating a property map from the predecessor vector, causing
> the compiler to choose the wrong template.
>
> How are you calling BFS?
>

Oh, sorry! I've forgotten to post the call. Following is the call and the instanziation of the map (With VertexList=vecS this will work):

    // Get the index map
        typedef property_map<BGLGraph, VertexID VertexContainer::*>::type IndexMap;
    IndexMap im = get(&VertexContainer::m_idVertex, graphIn);

    // Create a predecessor map over the indices.
        BGLVertexDescriptor startDescriptor;
        idMapperIn.mapIDs(this->getStartID(), startDescriptor);
        std::vector<BGLVertexDescriptor> p(num_vertices(graphIn));
        p[this->getStartID()] = startDescriptor;

        breadth_first_search(
                  graphIn
                , startDescriptor
                , vertex_index_map(im).visitor(make_bfs_visitor(record_predecessors(&p[0], boost::on_tree_edge())))
        );

idMapperIn is a local class to map IDs to a valid vertex descriptor.

greetz,
Manuel

-- 
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! 
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net