BppTreeDetail

template<typename Value, int leaf_node_bytes = 512, int internal_node_bytes = 512, int depth_limit = 16, bool disable_exceptions = true, typename ...Ts>
class BppTreeDetail

A B++ tree is a B+ tree with a pluggable set of mixins

Template Parameters:
  • Value – The value type of the B++ Tree

  • leaf_node_bytes – The maximum number of bytes in a leaf node

  • internal_node_bytes – The maximum number of bytes in an internal node

  • depth_limit – The maximum depth of the tree. Setting this lower reduces code size and compile times

  • Ts – The mixins to use with this B++ tree

struct Persistent : public PersistentMixin<Persistent>

Public Functions

template<typename ...Us>
inline explicit Persistent(Us&&... us)
inline Transient transient() const &
inline Transient transient() &&
template<typename It, typename ...Args>
inline Persistent assign(It const &it, Args&&... args) const
template<typename It, typename ...Args>
inline Persistent insert(It const &it, Args&&... args) const
template<typename It>
inline Persistent erase(It const &it) const
template<typename It, typename U>
inline Persistent update(It const &it, U &&updater) const
template<typename ...Args>
inline Persistent emplace_front(Args&&... args) const
template<typename ...Args>
inline Persistent emplace_back(Args&&... args) const
template<typename ...Args>
inline Persistent push_front(Args&&... args) const
template<typename ...Args>
inline Persistent push_back(Args&&... args) const
inline Persistent pop_front() const
inline Persistent pop_back() const
template<typename Parent>
struct Shared : public Parent

Public Types

using iterator = IteratorType<false, false>
using const_iterator = IteratorType<true, false>
using reverse_iterator = IteratorType<false, true>
using const_reverse_iterator = IteratorType<true, true>

Public Functions

inline size_t size() const
inline constexpr size_t max_size() const
inline size_t depth() const
inline constexpr size_t max_depth() const
inline iterator begin()
inline iterator end()
inline const_iterator cbegin() const
inline const_iterator cend() const
inline const_iterator begin() const
inline const_iterator end() const
inline reverse_iterator rbegin()
inline reverse_iterator rend()
inline const_reverse_iterator crbegin() const
inline const_reverse_iterator crend() const
inline const_reverse_iterator rbegin() const
inline const_reverse_iterator rend() const
inline Value const &front() const
inline Value const &back() const
inline bool empty() const
struct Transient : public TransientMixin<Transient>

Public Functions

template<typename ...Us>
inline explicit Transient(Us&&... us)
inline Persistent persistent() const &
inline Persistent persistent() &&
template<typename It, typename ...Args>
inline void assign(It const &it, Args&&... args)
template<typename It, typename ...Args>
inline void insert(It &&it, Args&&... args)
template<typename It>
inline void erase(It &&it)
template<typename It, typename U>
inline void update(It const &it, U &&updater)
template<typename ...Args>
inline void emplace_front(Args&&... args)
template<typename ...Args>
inline void emplace_back(Args&&... args)
template<typename ...Args>
inline void push_front(Args&&... args)
template<typename ...Args>
inline void push_back(Args&&... args)
inline Value pop_front()
inline Value pop_back()
inline void clear()