I am using Fedora 9, gcc 4.3.0, and boost 1.38.0.

I get the following error when calling the destroyMessage function.

boost/intrusive/detail/utilities.hpp:421: void boost::intrusive::detail::destructor_impl(Hook&, boost::intrusive::detail::link_dispatch<safe_link>) [with Hook = boost::intrusive::detail::generic_hook<boost::intrusive::get_list_node_algo<void*>, boost::intrusive::default_tag, safe_link, 1>]: Assertion `!hook.is_linked()' failed.


class MessageHook : public boost::intrusive::list_base_hook<>
{
public:
    MessageHook(Message* msg)
            : m_msg(msg) {};

    Message* GetMsg() { return m_msg; }

private:
    Message* m_msg;
};

class MessageFactory
{
public:
    MessageFactory()
    {
    }

    ~MessageFactory()
    {
    }
   
...

    virtual void destroyMessage( Message* msg )
    {
                MessageHook hook(msg);
                m_message_list.push_back( hook );
     }

private:
    boost::intrusive::list<stockTraderMessageHook> m_message_list;
};


Thanks