Dash Core Source Documentation (0.16.0.1)

Find detailed information regarding the Dash Core source code.

immer::detail::dvektor Namespace Reference

Classes

struct  impl
 
struct  iterator
 
struct  node
 
struct  ref
 

Typedefs

template<typename T , int B, typename MP >
using node_ptr = boost::intrusive_ptr< node< T, B, MP > >
 
template<typename T , int B>
using leaf_node = std::array< T, 1<< B >
 
template<typename T , int B, typename MP >
using inner_node = std::array< node_ptr< T, B, MP >, 1<< B >
 

Functions

constexpr auto fast_log2 (std::size_t x)
 
template<typename T , int B, typename MP , typename ... Ts>
auto make_node (Ts &&...xs) -> boost::intrusive_ptr< node< T, B, MP >>
 

Variables

template<int B, typename T = std::size_t>
constexpr T branches = T{1} << B
 
template<int B, typename T = std::size_t>
constexpr T mask = branches<B, T> - 1
 
template<int B, typename T = std::size_t>
constexpr auto max_depth
 
template<typename T , int B, typename MP >
const impl< T, B, MP > empty
 

Typedef Documentation

◆ inner_node

template<typename T , int B, typename MP >
using immer::detail::dvektor::inner_node = typedef std::array<node_ptr<T, B, MP>, 1 << B>

Definition at line 51 of file dvektor_impl.hpp.

◆ leaf_node

template<typename T , int B>
using immer::detail::dvektor::leaf_node = typedef std::array<T, 1 << B>

Definition at line 48 of file dvektor_impl.hpp.

◆ node_ptr

template<typename T , int B, typename MP >
using immer::detail::dvektor::node_ptr = typedef boost::intrusive_ptr<node<T, B, MP> >

Definition at line 45 of file dvektor_impl.hpp.

Function Documentation

◆ fast_log2()

◆ make_node()

template<typename T , int B, typename MP , typename ... Ts>
auto immer::detail::dvektor::make_node ( Ts &&...  xs) -> boost::intrusive_ptr<node<T, B, MP>>

Definition at line 126 of file dvektor_impl.hpp.

Variable Documentation

◆ branches

template<int B, typename T = std::size_t>
constexpr T immer::detail::dvektor::branches = T{1} << B

Definition at line 32 of file dvektor_impl.hpp.

◆ empty

template<typename T , int B, typename MP >
const impl<T, B, MP> immer::detail::dvektor::empty
Initial value:
= {
0,
0,
false,
ref<T, B, MP> {1, {}}
}

Definition at line 403 of file dvektor_impl.hpp.

Referenced by CActiveMasternodeManager::GetLocalAddress(), outputEscape(), LimitedString< Limit >::Serialize(), and CBloomFilter::UpdateEmptyFull().

◆ mask

template<int B, typename T = std::size_t>
constexpr T immer::detail::dvektor::mask = branches<B, T> - 1

Definition at line 35 of file dvektor_impl.hpp.

◆ max_depth

template<int B, typename T = std::size_t>
constexpr auto immer::detail::dvektor::max_depth
Initial value:
=
fast_log2(std::numeric_limits<std::size_t>::max()) / B
constexpr auto fast_log2(std::size_t x)

Definition at line 38 of file dvektor_impl.hpp.

Released under the MIT license