[BGL] how to use visitor with functor?
Can I use visitor with functor ? In BGL example on visitor, int main() { : boost::breadth_first_search (G, vertex(0, G), visitor(make_bfs_visitor( std::make_pair(print_edge("tree", on_tree_edge()), print_edge("cycle", on_non_tree_edge()))))); : } I want to do like this boost::breadth_first_search (G, vertex(0, G), visitor(make_bfs_visitor( std::make_pair(print_edge("tree", on_tree_edge(), MyFunctor1() ), print_edge("cycle", on_non_tree_edge(), MyFunction2() ))))); can i do this? how? why? thanks in advance.. ps. ths is my first posting. ---------------------------------------- Ki-Soo, Park e-mail: park@erhouse.co.kr wfms123@hotmail.com
There are numerous examples and explanation of using visitors in the BGL book. On Wed, 5 Jun 2002, �ڱ�� wrote: yg-boo> Can I use visitor with functor ? yg-boo> In BGL example on visitor, yg-boo> yg-boo> int main() yg-boo> { yg-boo> : yg-boo> boost::breadth_first_search yg-boo> (G, vertex(0, G), visitor(make_bfs_visitor( yg-boo> std::make_pair(print_edge("tree", on_tree_edge()), yg-boo> print_edge("cycle", on_non_tree_edge()))))); yg-boo> : yg-boo> } yg-boo> yg-boo> I want to do like this yg-boo> yg-boo> boost::breadth_first_search yg-boo> (G, vertex(0, G), visitor(make_bfs_visitor( yg-boo> std::make_pair(print_edge("tree", on_tree_edge(), MyFunctor1() ), yg-boo> print_edge("cycle", on_non_tree_edge(), yg-boo> MyFunction2() ))))); The print_edge function is creating a functor. You want to replace that and just use your functor. The functor you create, in addition to having an operator(), will also need a typedef event_filter to say which event to do the action on, like on_tree_edge. Cheers, Jeremy ---------------------------------------------------------------------- Jeremy Siek http://php.indiana.edu/~jsiek/ Ph.D. Student, Indiana Univ. B'ton email: jsiek@osl.iu.edu C++ Booster (http://www.boost.org) office phone: (812) 855-3608 ----------------------------------------------------------------------
participants (2)
-
Jeremy Siek
-
�ڱ��