Re: [Boost-users] [Graph] Help on custom VertexList

Why isn't there any "dequeS" tag in BGL?
Historical accident. If you'd like we could add your implementation for deque.
Below you find my implementation for deque. Regards Nicola PS: sorry for forgetting the subject in my previous post, causing a mess with message threading... #include <boost/graph/graph_traits.hpp> #include <boost/graph/adjacency_list.hpp> #include <deque> namespace boost { namespace graph_detail { struct deque_tag : virtual public random_access_container_tag, virtual public back_insertion_sequence_tag { }; // No front_insertion_sequence_tag? template <class T, class Alloc> deque_tag container_category(const std::deque<T, Alloc>&){ return deque_tag(); } template <class T, class Alloc> unstable_tag iterator_stability(const std::deque<T, Alloc>&) { return unstable_tag(); } #if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION template <class T, class Alloc> struct container_traits< std::deque<T, Alloc> > { typedef deque_tag category; typedef unstable_tag iterator_stability; }; #endif } // namespace graph_detail struct dequeS { }; template <typename ValueType> struct container_gen<dequeS, ValueType> { typedef typename std::deque<ValueType> type; }; } // namespace boost // Test int main(int, char*[]) { typedef boost::adjacency_list<boost::vecS, boost::dequeS, boost::bidirectionalS> Graph; Graph g; Graph::vertex_descriptor v1, v2; v1 = boost::add_vertex(g); v2 = boost::add_vertex(g); boost::add_edge(v1, v2, g); }
participants (1)
-
Nicola Vitacolonna