
hi, i hava a problem using bundled properties with filtered graph. i've modified the example from the filtered-graph page ( http://www.boost.org/libs/graph/doc/filtered_graph.html) to use edge properties and woul like to create a filter using these bundled properties, but am experiencing problems with the types of the property_map and/or filter. since i'm quite new to c++ and boost i would aprectiate any suggestin, thanks in advance i'm using gcc-3.3.5 and boost-1.34 moritz modified code: struct myEdge { int id; int weight; }; template <typename EdgeWeightMap> struct positive_edge_weight { positive_edge_weight() { } positive_edge_weight(EdgeWeightMap weight) : m_weight(weight) { } template <typename Edge> bool operator()(const Edge& e) const { return 0 < boost::get(m_weight, e); } EdgeWeightMap m_weight; }; int main() { using namespace boost; typedef adjacency_list<vecS, vecS, directedS, //no_property, property<edge_weight_t, int> > Graph; no_property, myEdge > Graph; typedef property_map<Graph, int myEdge::*>::type EdgeWeightMap; typedef graph_traits<Graph>::edge_iterator edge_iter_t; typedef filtered_graph<Graph,positive_edge_weight<EdgeWeightMap> > f_graph_t; typedef graph_traits<Graph>::edge_descriptor Edge; enum { A, B, C, D, E, N }; const char* name = "ABCDE"; Graph g(N); Edge e; bool ins; tie(e,ins)=add_edge(A, B, g); /.../ positive_edge_weight<EdgeWeightMap> filter(get(&myEdge::weight, g)); f_graph_t fg(g, filter); std::cout << "filtered edge set: "; print_edges(fg, name); std::cout << "filtered out-edges:" << std::endl; print_graph(fg, name); return 0; } g++ output: error: no matching function for call to ` boost::bundle_property_map<main()::Graph, boost::detail::edge_desc_impl<boost::directed_tag, size_t>, myEdge, int>:: bundle_property_map()' /homes/combi/Software/Boost/boost/graph/properties.hpp:330: error: candidates are: boost::bundle_property_map<main()::Graph, boost::detail::edge_desc_impl<boost::directed_tag, size_t>, myEdge, int>::bundle_property_map(const boost::bundle_property_map<main()::Graph, boost::detail::edge_desc_impl<boost::directed_tag, size_t>, myEdge, int>&) /homes/combi/Software/Boost/boost/graph/properties.hpp:336: error: boost::bundle_property_map<Graph, Descriptor, Bundle, T>::bundle_property_map(Graph*, T Bundle::*) [with Graph = main()::Graph, Descriptor = boost::detail::edge_desc_impl<boost::directed_tag, size_t>, Bundle = myEdge, T = int] -- /* ICQ 291996214 */ /* MSN moritz.hilger@gmail.com */ /* moe1234@jabber.ccc.de */ /* del.icio.us/new/moritz.hilger */