Boost logo

Boost Users :

Subject: [Boost-users] Error in accessing label of an edge, urgently need help.
From: Amanullah Yasin (amanyasin_at_[hidden])
Date: 2011-12-14 11:09:36


Hello,

I want to put edge label but facing an error. Please share any better idea.
Thanks in advance.
YASIN
=======================

My graph is:

namespace boost {
  struct computable_object_t
  {
    typedef vertex_property_tag kind;
  };
}

typedef boost::property<boost::vertex_index_t, unsigned int,
                        boost::property<boost::computable_object_t,
                                        plComputableObject*> >
slVertexProperty;

typedef boost::property<boost::edge_weight_t, slScoreValueType,
                        boost::property<boost::edge_name_t, std::string>>
slEdgeProperty;

typedef boost::adjacency_list<boost::vecS, boost::listS,
boost::bidirectionalS,
                              slVertexProperty, slEdgeProperty> slGraph;

slGraph graph;

....
...
//Now i want to add edge name
boost::property_map<slGraph, edge_name_t>::type labelmap = get(edge_name,
graph);

for(tie(ei, ei_end) = edges(graph); ei != ei_end; ++ei){

       string label = "unknown";
        put(labelmap, *ei, label);
         cout<<"\nUndirected s: "<<vertex_id[source(*ei, graph)] <<" T:
"<<vertex_id[target(*ei, graph)]<<" LABEL: "<< get(labelmap,*ei);
            }
////////////But it gives me an error////////////////

E:\ProBT22\boost_1_46_1\boost/property_map/property_map.hpp(361): error
C2679: binary '=' : no operator found which takes a right-hand operand of
type 'const std::string' (or there is no acceptable conversion)
1> E:\ProBT22\boost_1_46_1\boost/pending/detail/property.hpp(21):
could be 'boost::detail::error_property_not_found
&boost::detail::error_property_not_found::operator =(const
boost::detail::error_property_not_found &)'
1> while trying to match the argument list
'(boost::detail::error_property_not_found, const std::string)'
1> MMHC\ResultAnalysis.cpp(558) : see reference to function
template instantiation 'void
boost::put<boost::adj_list_edge_property_map<Directed,Value,Ref,Vertex,Property,Tag>,Ref,boost::detail::edge_desc_impl<Directed,Vertex>,std::string>(const
boost::put_get_helper<Reference,LvaluePropertyMap> &,K,const V &)' being
compiled
1> with
1> [
1> Directed=boost::bidirectional_tag,
1> Value=boost::detail::error_property_not_found,
1> Ref=boost::detail::error_property_not_found &,
1> Vertex=void *,
1>
Property=boost::property<boost::edge_weight_t,slScoreValueType>,
1> Tag=boost::edge_name_t,
1> Reference=boost::detail::error_property_not_found &,
1>
LvaluePropertyMap=boost::adj_list_edge_property_map<boost::bidirectional_tag,boost::detail::error_property_not_found,boost::detail::error_property_not_found
&,void
*,boost::property<boost::edge_weight_t,slScoreValueType>,boost::edge_name_t>,
1>
K=boost::detail::edge_desc_impl<boost::bidirectional_tag,void *>,
1> V=std::string
1> ]



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