|
|
constexpr | index_pointer (address const a) noexcept |
| |
|
constexpr | index_pointer (typed_address< internal_node > const a) noexcept |
| |
|
constexpr | index_pointer (typed_address< linear_node > const a) noexcept |
| |
|
| index_pointer (internal_node *const p) noexcept |
| |
|
| index_pointer (linear_node *const p) noexcept |
| |
|
| index_pointer (index_pointer const &) noexcept=default |
| |
|
| index_pointer (index_pointer &&) noexcept=default |
| |
|
index_pointer & | operator= (index_pointer const &)=default |
| |
|
index_pointer & | operator= (index_pointer &&) noexcept=default |
| |
|
index_pointer & | operator= (address const &a) noexcept |
| |
|
index_pointer & | operator= (typed_address< internal_node > const &a) noexcept |
| |
|
index_pointer & | operator= (typed_address< linear_node > const &a) noexcept |
| |
|
index_pointer & | operator= (internal_node *const p) noexcept |
| |
|
index_pointer & | operator= (linear_node *const l) noexcept |
| |
|
constexpr bool | operator== (index_pointer const &other) const noexcept |
| |
|
constexpr bool | operator!= (index_pointer const &other) const noexcept |
| |
|
constexpr | operator bool () const noexcept |
| |
|
void | clear () noexcept |
| |
| bool | is_internal () const noexcept |
| | Returns true if the index_pointer is pointing to an internal node, false otherwise. More...
|
| |
| bool | is_linear () const noexcept |
| | Returns true if the index_pointer is pointing to a linear node, false otherwise. More...
|
| |
| bool | is_leaf () const noexcept |
| | Returns true if the index_pointer contains the address of a value in the store, false otherwise. More...
|
| |
| bool | is_heap () const noexcept |
| | Returns true if the index_pointer is pointing to a heap node, false otherwise. More...
|
| |
| bool | is_address () const noexcept |
| | Returns true if the index_pointer is pointing to a store node, false otherwise. More...
|
| |
|
constexpr bool | is_empty () const noexcept |
| | Returns true if the pointer is equivalent to "null".
|
| |
|
address | to_address () const noexcept |
| |
|
template<typename T , typename = typename std::enable_if_t< is_any_of<T, internal_node, linear_node>::value>> |
| typed_address< T > | untag_address () const noexcept |
| |
|
template<typename Ptr , typename = typename std::enable_if_t<is_any_of< typename std::pointer_traits<Ptr>::element_type, internal_node, linear_node>::value>> |
| Ptr | untag () const noexcept |
| |
An index pointer is either a database address or a pointer to volatile RAM.
The type information (whether the record points to either an internal or linear node) is carried externally.