mdds
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
mdds::st::detail::nonleaf_node< KeyT, ValueT > Struct Template Reference

#include <node.hpp>

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

Public Types

using key_type = KeyT
 
using nonleaf_value_type = ValueT
 

Public Member Functions

 nonleaf_node (const nonleaf_node &r)
 
nonleaf_nodeoperator= (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_baseleft = nullptr
 high range value (non-inclusive)
 
node_baseright = nullptr
 left child nonleaf_node
 
- Public Attributes inherited from mdds::st::detail::node_base
node_baseparent
 
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 >
constexpr bool mdds::st::detail::nonleaf_node< KeyT, ValueT >::nothrow_default_constructible_v
staticconstexpr
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 >
constexpr bool mdds::st::detail::nonleaf_node< KeyT, ValueT >::nothrow_eq_comparable_v
staticconstexpr
Initial value:
=
noexcept(std::declval<key_type>() == std::declval<key_type>()) &&
noexcept(std::declval<nonleaf_value_type>() == std::declval<nonleaf_value_type>())