Loading...
Searching...
No Matches
mdds::st::detail::nonleaf_node< KeyT, ValueT > Struct Template Reference

`#include <node.hpp>`

Inheritance diagram for mdds::st::detail::nonleaf_node< KeyT, ValueT >:

## Public Types

using | key_type = KeyT
using | nonleaf_value_type = ValueT

## Public Member Functions

| nonleaf_node (const nonleaf_node &r)
nonleaf_node & | operator= (const nonleaf_node &r)
bool | operator== (const nonleaf_node &r) const noexcept(nothrow_eq_comparable_v)
bool | operator!= (const nonleaf_node &r) const noexcept(nothrow_eq_comparable_v)
std::string | to_string () const
Public Member Functions inherited from mdds::st::detail::node_base
| node_base (bool _is_leaf) noexcept
| node_base (const node_base &r) noexcept

## Public Attributes

nonleaf_value_type | value_nonleaf
key_type | low = {}
key_type | high = {}
| low range value (inclusive)
node_base * | left = nullptr
| high range value (non-inclusive)
node_base * | right = nullptr
| left child nonleaf_node
Public Attributes inherited from mdds::st::detail::node_base
node_base * | parent
bool | is_leaf
| parent nonleaf_node

## Static Public Attributes

static constexpr bool | nothrow_default_constructible_v
| right child nonleaf_node
static constexpr bool | nothrow_eq_comparable_v

## Detailed Description

template<typename KeyT, typename ValueT>
struct mdds::st::detail::nonleaf_node< KeyT, ValueT >

Represents a non-leaf node in a segment-tree like structure.

## Constructor & Destructor Documentation

## nonleaf_node()

template<typename KeyT, typename ValueT>

mdds::st::detail::nonleaf_node< KeyT, ValueT >::nonleaf_node | ( | const nonleaf_node< KeyT, ValueT > & | r | ) |

inline

When copying nonleaf_node, only the stored values should be copied. Connections to the parent, left and right nodes must not be copied.

## Member Function Documentation

## operator=()

template<typename KeyT, typename ValueT>

nonleaf_node & mdds::st::detail::nonleaf_node< KeyT, ValueT >::operator= | ( | const nonleaf_node< KeyT, ValueT > & | r | ) |

inline

Like the copy constructor, only the stored values should be copied.

## Member Data Documentation

## nothrow_default_constructible_v

template<typename KeyT, typename ValueT>

bool mdds::st::detail::nonleaf_node< KeyT, ValueT >::nothrow_default_constructible_v

static constexpr

Initial value:
= std::is_nothrow_default_constructible_v<key_type> &&
std::is_nothrow_default_constructible_v<nonleaf_value_type>

right child nonleaf_node

## nothrow_eq_comparable_v

template<typename KeyT, typename ValueT>

bool mdds::st::detail::nonleaf_node< KeyT, ValueT >::nothrow_eq_comparable_v

static constexpr

Initial value:
=
noexcept(std::declval<key_type>() == std::declval<key_type>()) &&
noexcept(std::declval<nonleaf_value_type>() == std::declval<nonleaf_value_type>())