Overview     Usage     Performance Notes     Links tst 0.68 - 23 Jan 2009

node_base Struct Template Reference

List of all members.


Detailed Description

template<typename CharT, typename StorageT, typename SizeT>
struct containers::tst_detail::node_base< CharT, StorageT, SizeT >

Behaviourally, there are 2 1/2 types of nodes:

We only ever return end-nodes to client code, and always wrapped in proxy types with desired behaviour (assignable and/or dereferenceable).

Invariants:


Public Types

enum  { invalid_index = node_index(-1) }
enum  { terminal = 1, erased = 2 }
typedef CharT char_type
typedef StorageT pointer_or_value
typedef SizeT node_index

Public Member Functions

unsigned int at_end () const
 Client code should only see nodes where at_end == 1.
 node_base (char_type c, node_index mom)
void swap_values (node_base &other)
void swap (node_base &other)
char_type splitchar () const
bool is_unlinked () const
 Erased and disused node; ie the rest of a twig following an erased node.

Public Attributes

char_type m_char
char_type m_atend
node_index parent
node_index hikid
union {
   node_index   lokid
   pointer_or_value   m_data
}; 
 Terminal nodes considered having unique -inf split char, so all nodes of longer strings go to hikid.

Member Typedef Documentation

typedef CharT char_type

Reimplemented in heap_node, and inplace_node.

typedef StorageT pointer_or_value

typedef SizeT node_index

Reimplemented in heap_node, and inplace_node.


Member Enumeration Documentation

anonymous enum

Enumerator:
invalid_index 

anonymous enum

Enumerator:
terminal 
erased 


Constructor & Destructor Documentation

node_base ( char_type  c,
node_index  mom 
) [inline]


Member Function Documentation

unsigned int at_end (  )  const [inline]

Client code should only see nodes where at_end == 1.

void swap_values ( node_base< CharT, StorageT, SizeT > &  other  )  [inline]

void swap ( node_base< CharT, StorageT, SizeT > &  other  )  [inline]

char_type splitchar (  )  const [inline]

bool is_unlinked (  )  const [inline]

Erased and disused node; ie the rest of a twig following an erased node.


Member Data Documentation

union { ... }

Terminal nodes considered having unique -inf split char, so all nodes of longer strings go to hikid.


ternary_tree 0.68 -- by rasmus ekman -- Page generated with Doxygen 1.5.6 on 23 Jan 2009