Boost logo

Boost Users :

From: Louis Lavery (louis_at_[hidden])
Date: 2006-07-03 05:06:12


According to the book [BGL p232], in order to customise the
EdgeList I need to define a container generator and parallel
edge traits class, and over load the push() and erase()
functions for the custom container [BGL p234].

My custom container is user::PushBackList<T>...

namespace user
{
     template<typename ValueType> struct PushBackList
     {
         //...
     };

     struct PushBackListS { };
}

...and I've put the (specialised) container_gen and
parallel_edge_traits classes in namespace boost...

namespace boost
{
     template<typename ValueType> struct
     container_gen<user::PushBackListS,ValueType>
     {
         typedef user::PushBackList<ValueType> type;
     };

     template<> struct
     parallel_edge_traits<user::PushBackListS>
     {
         typedef allow_parallel_edge_tag type;
     };
}

...now all I need do is overload the push() and erase() functions.
The problem is they are in nested namespace graph_detail and are
called with full qualification (i.e. boost::graph_detail::push(...))
from adjacency_list class.

That means I need to put my overloads in boost::graph_detail.
Is that right?

Thanks, Louis.


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