Boost logo

Boost :

Subject: Re: [boost] CSR graph in max flow
From: Dan Jiang (danjiang_at_[hidden])
Date: 2010-04-16 15:38:46


Hi Jeremiah,
Here is the code and error. Thanks again for your help.
-Dan
==========================================
typedef compressed_sparse_row_graph<directedS> Traits;
struct EdgeProp{ float capacity; float residual_capacity; Traits::edge_descriptor reverse_edge; };
typedef compressed_sparse_row_graph<directedS,
                        property<vertex_index_t, DWORD32>,
                        EdgeProp,
                        no_property, // Graph Property
                        DWORD32, // Vertex Type
                        DWORD32> // EdgeIndex Type
                        BOOST_Graph;
The code that errors out: flow = (float)push_relabel_max_flow(g, s, t);

Errors: (Note that line 146 in push_relabel_flow.hpp is: residual_capacity[*ei] = capacity[*ei];)
C:\Program Files (x86)\boost\boost_1_42\boost/graph/push_relabel_max_flow.hpp(146) : error C2679: binary '[' : no operator found which takes a right-hand operand of type 'const boost::detail::csr_edge_descriptor<Vertex,EdgeIndex>' (or there is no acceptable conversion) with [ Vertex=size_t, EdgeIndex=size_t ] C:\Program Files (x86)\boost\boost_1_42\boost/property_map/property_map.hpp(553): could be 'unsigned int boost::typed_identity_property_map<T>::operator [](const unsigned int &) const' with [ T=size_t ] while trying to match the argument list '(boost::typed_identity_property_map<T>, const boost::detail::csr_edge_descriptor<Vertex,EdgeIndex>)'
        with [ T=size_t ] and [ Vertex=size_t, EdgeIndex=size_t ]
        C:\Program Files (x86)\boost\boost_1_42\boost/graph/push_relabel_max_flow.hpp(114) : while compiling class template member function 'boost::detail::push_relabel<Graph,EdgeCapacityMap,ResidualCapacityEdgeMap,ReverseEdgeMap,VertexIndexMap,FlowValue>::push_relabel(Graph &,EdgeCapacityMap,ResidualCapacityEdgeMap,ReverseEdgeMap,unsigned int,unsigned int,VertexIndexMap)'
        with [ Graph=BOOST_Graph, EdgeCapacityMap=boost::typed_identity_property_map<size_t>, ResidualCapacityEdgeMap=boost::typed_identity_property_map<size_t>, ReverseEdgeMap=boost::typed_identity_property_map<size_t>, VertexIndexMap=boost::typed_identity_property_map<size_t>, FlowValue=FlowValue ] C:\Program Files (x86)\boost\boost_1_42\boost/graph/push_relabel_max_flow.hpp(680) : see reference to class template instantiation 'boost::detail::push_relabel<Graph,EdgeCapacityMap,ResidualCapacityEdgeMap,ReverseEdgeMap,VertexIndexMap,FlowValue>' being compiled
        with [ Graph=BOOST_Graph, EdgeCapacityMap=boost::typed_identity_property_map<size_t>, ResidualCapacityEdgeMap=boost::typed_identity_property_map<size_t>, ReverseEdgeMap=boost::typed_identity_property_map<size_t>, VertexIndexMap=boost::typed_identity_property_map<size_t>, FlowValue=FlowValue ]
        C:\Program Files (x86)\boost\boost_1_42\boost/graph/push_relabel_max_flow.hpp(707) : see reference to function template instantiation 'unsigned int boost::push_relabel_max_flow<Graph,boost::typed_identity_property_map<T>,boost::typed_identity_property_map<T>,boost::typed_identity_property_map<T>,boost::typed_identity_property_map<T>>(Graph &,unsigned int,unsigned int,CapacityEdgeMap,ResidualCapacityEdgeMap,ReverseEdgeMap,VertexIndexMap)' being compiled
        with [ Graph=BOOST_Graph, T=size_t, CapacityEdgeMap=boost::typed_identity_property_map<size_t>, ResidualCapacityEdgeMap=boost::typed_identity_property_map<size_t>, ReverseEdgeMap=boost::typed_identity_property_map<size_t>, VertexIndexMap=boost::typed_identity_property_map<size_t> ]
        C:\Program Files (x86)\boost\boost_1_42\boost/graph/push_relabel_max_flow.hpp(720) : see reference to function template instantiation 'unsigned int boost::push_relabel_max_flow<Graph,int,boost::buffer_param_t,boost::no_property>(Graph &,unsigned int,unsigned int,const boost::bgl_named_params<T,Tag> &)' being compiled
        with [ Graph=BOOST_Graph, T=int, Tag=boost::buffer_param_t ]
        .\NetFlow.cpp(270) : see reference to function template instantiation 'unsigned int boost::push_relabel_max_flow<BOOST_Graph>(Graph &,unsigned int,unsigned int)' being compiled with [ Graph=BOOST_Graph ]C:\Program Files (x86)\boost\boost_1_42\boost/graph/push_relabel_max_flow.hpp(146) : error C2679: binary '[' : no operator found which takes a right-hand operand of type 'const boost::detail::csr_edge_descriptor<Vertex,EdgeIndex>' (or there is no acceptable conversion) with [ Vertex=size_t, EdgeIndex=size_t ]
        C:\Program Files (x86)\boost\boost_1_42\boost/property_map/property_map.hpp(553): could be 'unsigned int boost::typed_identity_property_map<T>::operator [](const unsigned int &) const'
        with [ T=size_t ] while trying to match the argument list '(boost::typed_identity_property_map<T>, const boost::detail::csr_edge_descriptor<Vertex,EdgeIndex>)' with [ T=size_t ] and [ Vertex=size_t, EdgeIndex=size_t ]
C:\Program Files (x86)\boost\boost_1_42\boost/graph/push_relabel_max_flow.hpp(161) : error C2679: binary '[' : no operator found which takes a right-hand operand of type 'const boost::detail::csr_edge_descriptor<Vertex,EdgeIndex>' (or there is no acceptable conversion) with [ Vertex=size_t, EdgeIndex=size_t ]
        C:\Program Files (x86)\boost\boost_1_42\boost/property_map/property_map.hpp(553): could be 'unsigned int boost::typed_identity_property_map<T>::operator [](const unsigned int &) const' with [ T=size_t ] while trying to match the argument list '(boost::typed_identity_property_map<T>, const boost::detail::csr_edge_descriptor<Vertex,EdgeIndex>)' with [ T=size_t ] and [ Vertex=size_t, EdgeIndex=size_t ]C:\Program Files (x86)\boost\boost_1_42\boost/graph/push_relabel_max_flow.hpp(174) : error C2679: binary '[' : no operator found which takes a right-hand operand of type 'boost::detail::csr_edge_descriptor<Vertex,EdgeIndex>' (or there is no acceptable conversion)
        with [ Vertex=size_t, EdgeIndex=size_t ] C:\Program Files (x86)\boost\boost_1_42\boost/property_map/property_map.hpp(553): could be 'unsigned int boost::typed_identity_property_map<T>::operator [](const unsigned int &) const' with [ T=size_t ] while trying to match the argument list '(boost::typed_identity_property_map<T>, boost::detail::csr_edge_descriptor<Vertex,EdgeIndex>)' with [ T=size_t ] and [ Vertex=size_t, EdgeIndex=size_t ]
C:\Program Files (x86)\boost\boost_1_42\boost/graph/push_relabel_max_flow.hpp(175) : error C2679: binary '[' : no operator found which takes a right-hand operand of type 'boost::detail::csr_edge_descriptor<Vertex,EdgeIndex>' (or there is no acceptable conversion) with [ Vertex=size_t, EdgeIndex=size_t ]
        C:\Program Files (x86)\boost\boost_1_42\boost/property_map/property_map.hpp(553): could be 'unsigned int boost::typed_identity_property_map<T>::operator [](const unsigned int &) const' with [ T=size_t ]
        while trying to match the argument list '(boost::typed_identity_property_map<T>, boost::detail::csr_edge_descriptor<Vertex,EdgeIndex>)' with [ T=size_t ] and [ Vertex=size_t, EdgeIndex=size_t ]
C:\Program Files (x86)\boost\boost_1_42\boost/graph/push_relabel_max_flow.hpp(176) : error C2679: binary '[' : no operator found which takes a right-hand operand of type 'boost::detail::csr_edge_descriptor<Vertex,EdgeIndex>' (or there is no acceptable conversion) with [ Vertex=size_t, EdgeIndex=size_t ]
        C:\Program Files (x86)\boost\boost_1_42\boost/property_map/property_map.hpp(553): could be 'unsigned int boost::typed_identity_property_map<T>::operator [](const unsigned int &) const'
        with [ T=size_t ] while trying to match the argument list '(boost::typed_identity_property_map<T>, boost::detail::csr_edge_descriptor<Vertex,EdgeIndex>)'
        with [ T=size_t ] and [ Vertex=size_t, EdgeIndex=size_t ]

> > What compiler errors do you have? Could you please post a complete piece
> of code that gives an error, as well as the errors themselves? Also,
> please put newlines in your code so it is easier to read.
>
> -- Jeremiah Willcock
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
                                               
_________________________________________________________________
Hotmail & Messenger are available on your phone. Try now.
http://go.microsoft.com/?linkid=9724461


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk