# ``tree`::const_node_iterator` Interface

Const node iterator.

This is an &qout;iterator to an iterator&qout; - it iterates over nodes, and de-referencing it returns one of the tree's iterators

## Public Types and Constants

### Iterator Definitions

Type | Definition | Description
    iterator_category
    trivial_iterator_tag
| Category. This tag identifies that the iterator has none of the STL's iterators' movement abilities.
    difference_type
    void
| Difference type.

### Value-Type Definitions

Note that a node iterator's value type is actually a tree iterator.

Type | Definition | Description
    value_type
    container_base::const_iterator
| Iterator's value type.
    reference
    container_base::const_iterator
| Iterator's reference type.
    const_reference
    container_base::const_iterator
| Iterator's const `reference` type.

### Metadata Definitions

These are only defined if `basic_tree`::Node_Update is not `null_tree_node_update`

Type | Definition | Description
    metadata_type
    typename basic_tree::Node_Update::metadata_type
| Metadata type.
    const_metadata_reference
    typename Allocator::template rebind<
        metadata_type>::other::const_reference
| Const metadata `reference` type.

## Public Methods

### Constructors, Destructor, and Related

Method | Description
    inline
      const_node_iterator
      ()
| Default constructor.

### Access Methods

Method | Description
    inline const_reference
      operator*
      () const
| Access.

### Metadata Access Methods

These are only defined if `basic_tree`::Node_Update is not `null_tree_node_update`

Method | Description
    inline const_metadata_reference
      get_metadata
      () const
| Metadata access.

### Movement Methods

Method | Description
    inline const_node_iterator
      get_l_child
      () const
| Returns the const node iterator associated with the left node.
    inline const_node_iterator
      get_r_child
      () const
| Returns the const node iterator associated with the right node.

### Comparison Methods

Method | Description
    inline bool
      operator==
      (const const_node_iterator &other) const
| Compares to a different iterator object.
    inline bool
      operator!=
      (const const_node_iterator &other) const
| Compares (negatively) to a different iterator object.