Boost logo

Boost :

From: Ion Gaztañaga (igaztanaga_at_[hidden])
Date: 2008-07-07 01:06:21


Markus Schöpflin wrote:
> Markus Schöpflin wrote:
>
>> OK, I applied the patch. You might want to massage the comment a bit,
>> and probably extend the condition to include GCC 4.3 as well.

This enable_if trick works for GCC 4.3. Could you try it with EDG?
Modify boost/trunk/boost/intrusive/detail/any_node_and_algorithms.hpp:

[...]

#include <boost/intrusive/detail/mpl.hpp>

[...]

template<class VoidPointer>
class any_algorithms
{
    public:

    template <class T>
    static void function_not_available_for_any_hooks(typename
detail::enable_if<detail::is_same<T, bool> >::type)
    {}
   public:

[...]

    static void unlink(node_ptr)
    {
       //Auto-unlink hooks and unlink() call for safe hooks are not
       //available for any hooks!!!
       any_algorithms<VoidPointer>::template
function_not_available_for_any_hooks<node_ptr>();
    }

    static void swap_nodes(node_ptr l, node_ptr r)
    {
       //Any nodes have no swap_nodes capability because they don't know
       //what algorithm they must use from unlink them from the container
       any_algorithms<VoidPointer>::template
function_not_available_for_any_hooks<node_ptr>();
    }

Ion


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk