78 template <
class F>
friend class chain;
80 template <
class F>
friend class stack;
144 return new node(*
this);
160 return reinterpret_cast<node<T>*
> (addr ^ mask);
231 else if (
unlikely(m_data == NULL) )
232 m_data =
new T(*data);
This abstract class serves as the root of the class hierarchy tree.
Lightweight, templated, doubly-linked list (using XOR linking)
virtual node * operator^(const node &) const
Get the next node (XOR linking)
Lightweight, templated, singly-linked LIFO queue (stack)
Class csdbg::object definition.
virtual node * link(const node *=NULL) const
Get the next node (using direct or XOR linking)
#define likely(expr)
Offer a hint (positive) to the pipeline branch predictor.
A node in a templated chain (doubly-linked list) or stack (singly-linked LIFO queue) ...
virtual node & unlink_from(const node *)
Unlink from a node (for XOR linking)
virtual T * detach()
Detach the data pointer from the node.
virtual node & operator=(const node &)
Assignment operator.
virtual node & link_to(const node *)
Link with a node (for XOR linking)
node(T *)
Object constructor.
virtual ~node()
Object destructor.
virtual node * clone() const
Object virtual copy constructor.
unsigned long long mem_addr_t
64-bit memory address
#define unlikely(expr)
Offer a hint (negative) to the pipeline branch predictor.
node * m_link
Next node link (direct or XOR link)