[BGL] Converting my graph to BGL.

Hi all, I have been trying to convert an existing graph implementation to BGL. I have followed this example http://www.boost.org/libs/graph/doc/leda_conversion.html and implemented the incidence_graph, adjacency_graph and vertex_list_graph concepts. The following concept check compiles : boost::function_requires< boost::GraphConcept<graph_t> >(); boost::function_requires< boost::IncidenceGraphConcept<graph_t> >(); boost::function_requires< boost::AdjacencyGraphConcept<graph_t> >(); boost::function_requires< boost::VertexListGraphConcept<graph_t> >(); and the basic functions for these concepts seems to work properly (out_degree(), num_vertices(), etc..). But when I try to call an algorithm, like for instance articulation_points() (which takes a graph which model must be of Vertex List Graph and Incidence Graph), compilation fails: /usr/include/boost/graph/biconnected_components.hpp: In function 'OutputIterator boost::articulation_points(const Graph&, OutputIterator) [with Graph = vcsn::Graph<vcsn::labels_are_series, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, vcsn::algebra::polynom<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>, char, vcsn::NoTag, vcsn::geometry>, OutputIterator = std::back_insert_iterator<std::vector<vcsn::handler<vcsn::state_h>, std::allocator<vcsn::handler<vcsn::state_h> > > >]': test2.cc:77: instantiated from here /usr/include/boost/graph/biconnected_components.hpp:246: error: no matching function for call to 'get(boost::vertex_index_t, const vcsn::Graph<vcsn::labels_are_series, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, vcsn::algebra::polynom<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>, char, vcsn::NoTag, vcsn::geometry>&)' Compilation exited abnormally with code 1 at Fri Feb 3 17:38:31 What did I forgot to do ? -- Robert

The algorithm that you are using requires that your graph as a vertex index property. It also looks like the algorithm is having problems with your output iterator, which I assume is the second parameter to it. Robert Bigaignon wrote:
Hi all,
I have been trying to convert an existing graph implementation to BGL. I have followed this example http://www.boost.org/libs/graph/doc/leda_conversion.html and implemented the incidence_graph, adjacency_graph and vertex_list_graph concepts.
The following concept check compiles :
boost::function_requires< boost::GraphConcept<graph_t> >(); boost::function_requires< boost::IncidenceGraphConcept<graph_t> >(); boost::function_requires< boost::AdjacencyGraphConcept<graph_t> >(); boost::function_requires< boost::VertexListGraphConcept<graph_t> >();
and the basic functions for these concepts seems to work properly (out_degree(), num_vertices(), etc..).
But when I try to call an algorithm, like for instance articulation_points() (which takes a graph which model must be of Vertex List Graph and Incidence Graph), compilation fails:
/usr/include/boost/graph/biconnected_components.hpp: In function 'OutputIterator boost::articulation_points(const Graph&, OutputIterator) [with Graph = vcsn::Graph<vcsn::labels_are_series, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, vcsn::algebra::polynom<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>, char, vcsn::NoTag, vcsn::geometry>, OutputIterator = std::back_insert_iterator<std::vector<vcsn::handler<vcsn::state_h>, std::allocator<vcsn::handler<vcsn::state_h> > > >]': test2.cc:77: instantiated from here /usr/include/boost/graph/biconnected_components.hpp:246: error: no matching function for call to 'get(boost::vertex_index_t, const vcsn::Graph<vcsn::labels_are_series, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, vcsn::algebra::polynom<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>, char, vcsn::NoTag, vcsn::geometry>&)'
Compilation exited abnormally with code 1 at Fri Feb 3 17:38:31
What did I forgot to do ?
participants (2)
-
Jeffrey Holle
-
Robert Bigaignon