//! <b>Requires</b>: b and e must be nodes of the same circular list or an empty range. //! //! <b>Effects</b>: Unlinks the node [b, e) from the circular list. //! //! <b>Complexity</b>: Constant //! //! <b>Throws</b>: Nothing. static void unlink(const node_ptr &b, const node_ptr &e) { if (b != e) { node_ptr prevb(NodeTraits::get_previous(b)); NodeTraits::set_previous(e, prevb); NodeTraits::set_next(prevb, e); } }
//! <b>Requires</b>: b and e must be nodes of the same circular list or an empty range. //! //! <b>Effects</b>: Unlinks the node [b, e) from the circular list. //! //! <b>Complexity</b>: Constant //! //! <b>Throws</b>: Nothing. BOOST_INTRUSIVE_FORCEINLINE static void unlink(const node_ptr &b, const node_ptr &e) { if (b != e) { node_ptr prevb(NodeTraits::get_previous(b)); NodeTraits::set_previous(e, prevb); NodeTraits::set_next(prevb, e); } }