David A. Greene wrote:
> I do need to be able to start at various points within the sequence.
> Your second solution fleshes out the design I had in mind, but I
> was out of town over the weekend so you beat me to the punch.  :)

Actually, I wrote too much code in that "solution" ;). Just this would be
enough:

    template< typename T > 
    struct intrusive_iter
    {
        typedef T type;
        typedef intrusive_iter<typename T::type> next;
    };

    template<> 
    struct intrusive_iter<void_>
    {
    };
    
    template< typename T > 
    struct intrusive_list
    {
        typedef mpl::nested_begin_end_tag tag; // not required
        typedef intrusive_iter<T> begin;
        typedef intrusive_iter<void_> end;        
    };

No 'begin/end' specializations needed, and the 'tag' typedef is there only
to make some deficient compilers happy (Borland, in particular).

Aleksey
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to