//! <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);
    }
 }