id summary reporter owner description type status milestone component version severity resolution keywords cc 12939 use of boost::graph_bundle with subgraph ioannis.nousias@… Jeremiah Willcock "using boost::graph_bundle with a subgraph picks up the 'vertex' access delegate. This is because boost::graph_bundle enumeration gets downgraded to an integer, which matches the first template specialization in subgraph.hpp '''example''': {{{ struct VertexProperties { std::string name; }; struct EdgeProperties { std::string name; }; struct GraphProperties { std::string name; }; boost::subgraph< boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, boost::property, boost::property, GraphProperties> > graph; auto name = graph[boost::graph_bundle].name; }}} '''compiler error:''' {{{ boost/graph/subgraph.hpp:278:24: error: no match for ternary 'operator?:' (operand types are 'bool', 'boost::adjacency_list, boost::property, tpg::GraphProperties>::graph_bundled {aka tpg::GraphProperties}', and 'boost::adjacency_list, boost::property, tpg::GraphProperties>::vertex_bundled {aka tpg::VertexProperties}') { return is_root() ? m_graph[x] : root().m_graph[local_to_global(x)]; } ^ boost/graph/subgraph.hpp: In member function 'typename boost::graph::detail::bundled_result::type& boost::subgraph::operator[](Descriptor) [with Descriptor = boost::graph_bundle_t; Graph = boost::adjacency_list, boost::property, tpg::GraphProperties>; typename boost::graph::detail::bundled_result::type = tpg::GraphProperties]': boost/graph/subgraph.hpp:278:75: warning: control reaches end of non-void function [-Wreturn-type] { return is_root() ? m_graph[x] : root().m_graph[local_to_global(x)]; } }}} '''workaround/hack''': explicitly use local_property or global_property lookup classes. {{{ auto name = graph[boost::global_property(boost::graph_bundle)].name; }}} " Bugs new To Be Determined graph Boost 1.60.0 Problem subgraph, graph_bundle ioannis.nousias@…