compilation problem with property_map?
hello all, i was wondering if anyone could help me with this compilation error. gcc indicates that the error is in put(), specifically it cannot match the operator for [bool&] on property_map.hpp:316. the full output is included below. the origin of the error is caused in destructor code (when objects get out of scope in testgdlgraph.cpp). if i need to supply more information about the code i am writing let me know. i am hesitant because it is fairly complicated, as i am having trouble trying to replicate this problem in a simple example. thanks leonid ps. boost rocks, keep up the good work! the compiler error: /usr/include/boost/property_map.hpp: In function `void boost::put(const boost::put_get_helper<Reference, PropertyMap>&, K, const V&) [with PropertyMap = boost::adj_list_edge_property_map<boost::bidirectional_tag, ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*, ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*&, void*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_table_tag, ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_table_tag>, Reference = ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*&, K = bool, V = const ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*]': testgdlgraph.cpp:1488: instantiated from `void boost::put(Property, boost::adj_list_helper<Config, Base>&, const Key&, const Value&) [with Config = boost::detail::adj_list_gen<boost::adjacency_list<boost::setS, boost::listS, boost::bidirectionalS, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_vertex_vertex_tag, ngdl::GDLvertex<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_vertex_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_table_tag, ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, boost::no_property, boost::listS>, boost::listS, boost::setS, boost::bidirectionalS, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_vertex_vertex_tag, ngdl::GDLvertex<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_vertex_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_table_tag, ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, boost::no_property, boost::listS>::config, Base = boost::bidirectional_graph_helper_with_property<boost::detail::adj_list_gen<boost::adjacency_list<boost::setS, boost::listS, boost::bidirectionalS, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_vertex_vertex_tag, ngdl::GDLvertex<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_vertex_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_table_tag, ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*, st1()::ser_t>::GDL_edge_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, boost::no_property, boost::listS>, boost::listS, boost::setS, boost::bidirectionalS, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_vertex_vertex_tag, ngdl::GDLvertex<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_vertex_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_table_tag, ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, boost::no_property, boost::listS>::config>, Property = ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_table_tag, Key = bool, Value = const ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*]' testgdlgraph.cpp:533: instantiated from `boost::graph_traits<boost::adjacency_list<boost::setS, boost::listS, boost::bidirectionalS, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_vertex_vertex_tag, ngdl::GDLvertex<parameter_t, domain_value_t, sr_element_t>*, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_vertex_domain_map_tag, ngdl::GDLvertex<parameter_t, domain_value_t, sr_element_t>::domain_map_type*, boost::no_property> >, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_edge_table_tag, ngdl::GDLtable<parameter_t, domain_value_t, sr_element_t>*, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_edge_domain_map_tag, ngdl::GDLvertex<parameter_t, domain_value_t, sr_element_t>::domain_map_type*, boost::no_property> >, boost::no_property, boost::listS> >::edge_descriptor ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::add_edge(boost::graph_traits<boost::adjacency_list<boost::setS, boost::listS, boost::bidirectionalS, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_vertex_vertex_tag, ngdl::GDLvertex<parameter_t, domain_value_t, sr_element_t>*, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_vertex_domain_map_tag, ngdl::GDLvertex<parameter_t, domain_value_t, sr_element_t>::domain_map_type*, boost::no_property> >, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_edge_table_tag, ngdl::GDLtable<parameter_t, domain_value_t, sr_element_t>*, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_edge_domain_map_tag, ngdl::GDLvertex<parameter_t, domain_value_t, sr_element_t>::domain_map_type*, boost::no_property> >, boost::no_property, boost::listS> >::vertex_descriptor&, boost::graph_traits<boost::adjacency_list<boost::setS, boost::listS, boost::bidirectionalS, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_vertex_vertex_tag, ngdl::GDLvertex<p roperty<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_vertex_domain_map_tag, ngdl::GDLvertex<parameter_t, domain_value_t, sr_element_t>::domain_map_type*, boost::no_property> >, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_edge_table_tag, ngdl::GDLtable<parameter_t, domain_value_t, sr_element_t>*, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_edge_domain_map_tag, ngdl::GDLvertex<parameter_t, domain_value_t, sr_element_t>::domain_map_type*, boost::no_property> >, boost::no_property, boost::listS> >::vertex_descriptor&) [with parameter_t = par_t, domain_value_t = dv_t, sr_element_t = test1()::ser_t]' testgdlgraph.cpp:104: instantiated from here /usr/include/boost/property_map.hpp:316: no match for `const boost::adj_list_edge_property_map<boost::bidirectional_tag, ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*, ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*&, void*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_table_tag, ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_table_tag>& [bool&]' operator /usr/include/boost/graph/detail/adjacency_list.hpp:2383: candidates are: Ref boost::adj_list_edge_property_map<Directed, Value, Ref, Vertex, Property, Tag>::operator[](boost::detail::edge_desc_impl<Directed, Vertex>) const [with Directed = boost::bidirectional_tag, Value = ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*, Ref = ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*&, Vertex = void*, Property = boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_table_tag, ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, Tag = ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_table_tag] /usr/include/boost/property_map.hpp: In function `void boost::put(const boost::put_get_helper<Reference, PropertyMap>&, K, const V&) [with PropertyMap = boost::adj_list_edge_property_map<boost::bidirectional_tag, const ngdl::domain_map<par_t, dv_t>*, const ngdl::domain_map<par_t, dv_t>*&, void*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_table_tag, ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_domain_map_tag>, Reference = const ngdl::domain_map<par_t, dv_t>*&, K = bool, V = const ngdl::domain_map<par_t, dv_t>*]': testgdlgraph.cpp:1488: instantiated from `void boost::put(Property, boost::adj_list_helper<Config, Base>&, const Key&, const Value&) [with Config = boost::detail::adj_list_gen<boost::adjacency_list<boost::setS, boost::listS, boost::bidirectionalS, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_vertex_vertex_tag, ngdl::GDLvertex<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_vertex_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_table_tag, ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, boost::no_property, boost::listS>, boost::listS, boost::setS, boost::bidirectionalS, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_vertex_vertex_tag, ngdl::GDLvertex<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_vertex_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_table_tag, ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, boost::no_property, boost::listS>::config, Base = boost::bidirectional_graph_helper_with_property<boost::detail::adj_list_gen<boost::adjacency_list<boost::setS, boost::listS, boost::bidirectionalS, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_vertex_vertex_tag, ngdl::GDLvertex<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_vertex_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_table_tag, ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*, st1()::ser_t>::GDL_edge_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, boost::no_property, boost::listS>, boost::listS, boost::setS, boost::bidirectionalS, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_vertex_vertex_tag, ngdl::GDLvertex<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_vertex_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_table_tag, ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, boost::no_property, boost::listS>::config>, Property = ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_domain_map_tag, Key = bool, Value = const ngdl::domain_map<par_t, dv_t>*]' testgdlgraph.cpp:537: instantiated from `boost::graph_traits<boost::adjacency_list<boost::setS, boost::listS, boost::bidirectionalS, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_vertex_vertex_tag, ngdl::GDLvertex<parameter_t, domain_value_t, sr_element_t>*, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_vertex_domain_map_tag, ngdl::GDLvertex<parameter_t, domain_value_t, sr_element_t>::domain_map_type*, boost::no_property> >, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_edge_table_tag, ngdl::GDLtable<parameter_t, domain_value_t, sr_element_t>*, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_edge_domain_map_tag, ngdl::GDLvertex<parameter_t, domain_value_t, sr_element_t>::domain_map_type*, boost::no_property> >, boost::no_property, boost::listS> >::edge_descriptor ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::add_edge(boost::graph_traits<boost::adjacency_list<boost::setS, boost::listS, boost::bidirectionalS, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_vertex_vertex_tag, ngdl::GDLvertex<parameter_t, domain_value_t, sr_element_t>*, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_vertex_domain_map_tag, ngdl::GDLvertex<parameter_t, domain_value_t, sr_element_t>::domain_map_type*, boost::no_property> >, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_edge_table_tag, ngdl::GDLtable<parameter_t, domain_value_t, sr_element_t>*, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_edge_domain_map_tag, ngdl::GDLvertex<parameter_t, domain_value_t, sr_element_t>::domain_map_type*, boost::no_property> >, boost::no_property, boost::listS> >::vertex_descriptor&, boost::graph_traits<boost::adjacency_list<boost::setS, boost::listS, boost::bidirectionalS, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_vertex_vertex_tag, ngdl::GDLvertex<p roperty<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_vertex_domain_map_tag, ngdl::GDLvertex<parameter_t, domain_value_t, sr_element_t>::domain_map_type*, boost::no_property> >, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_edge_table_tag, ngdl::GDLtable<parameter_t, domain_value_t, sr_element_t>*, boost::property<ngdl::GDLgraph<parameter_t, domain_value_t, sr_element_t>::GDL_edge_domain_map_tag, ngdl::GDLvertex<parameter_t, domain_value_t, sr_element_t>::domain_map_type*, boost::no_property> >, boost::no_property, boost::listS> >::vertex_descriptor&) [with parameter_t = par_t, domain_value_t = dv_t, sr_element_t = test1()::ser_t]' testgdlgraph.cpp:104: instantiated from here /usr/include/boost/property_map.hpp:316: no match for `const boost::adj_list_edge_property_map<boost::bidirectional_tag, const ngdl::domain_map<par_t, dv_t>*, const ngdl::domain_map<par_t, dv_t>*&, void*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_table_tag, ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_domain_map_tag>& [bool&]' operator /usr/include/boost/graph/detail/adjacency_list.hpp:2383: candidates are: Ref boost::adj_list_edge_property_map<Directed, Value, Ref, Vertex, Property, Tag>::operator[](boost::detail::edge_desc_impl<Directed, Vertex>) const [with Directed = boost::bidirectional_tag, Value = const ngdl::domain_map<par_t, dv_t>*, Ref = const ngdl::domain_map<par_t, dv_t>*&, Vertex = void*, Property = boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_table_tag, ngdl::GDLtable<par_t, dv_t, test1()::ser_t>*, boost::property<ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_domain_map_tag, const ngdl::domain_map<par_t, dv_t>*, boost::no_property> >, Tag = ngdl::GDLgraph<par_t, dv_t, test1()::ser_t>::GDL_edge_domain_map_tag] make[2]: *** [testgdlgraph.o] Error 1 make[1]: *** [check-am] Error 2 make: *** [check-recursive] Error 1
Hi Leonid, On Jan 27, 2004, at 1:06 AM, lr wrote:
hello all,
i was wondering if anyone could help me with this compilation error. gcc indicates that the error is in put(), specifically it cannot match the operator for [bool&] on property_map.hpp:316. the full output is included below.
The operator[] for this property map takes an edge_descriptor, not bool. So it looks like you are calling operator[] with the wrong kind of argument.
the origin of the error is caused in destructor code (when objects get out of scope in testgdlgraph.cpp).
if i need to supply more information about the code i am writing let me know. i am hesitant because it is fairly complicated, as i am having trouble trying to replicate this problem in a simple example.
thanks
leonid
ps. boost rocks, keep up the good work!
Thanks! 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) 856-1820 ------------------------------------------------------------------------ -----------------
participants (2)
-
Jeremy Siek
-
lr