mdds
Loading...
Searching...
No Matches
mdds::mtv::noncopyable_managed_element_block< TypeId, ValueT, StoreT > Struct Template Reference

#include <types.hpp>

Inheritance diagram for mdds::mtv::noncopyable_managed_element_block< TypeId, ValueT, StoreT >:
mdds::mtv::noncopyable_element_block< noncopyable_managed_element_block< TypeId, ValueT, delayed_delete_vector >, TypeId, ValueT *, delayed_delete_vector > mdds::mtv::element_block< noncopyable_managed_element_block< TypeId, ValueT, delayed_delete_vector >, TypeId, ValueT, delayed_delete_vector > mdds::mtv::base_element_block

Public Types

using self_type = noncopyable_managed_element_block<TypeId, ValueT, StoreT>
using base_type = noncopyable_element_block<self_type, TypeId, ValueT*, StoreT>
Public Types inherited from mdds::mtv::element_block< noncopyable_managed_element_block< TypeId, ValueT, delayed_delete_vector >, TypeId, ValueT, delayed_delete_vector >
using store_type
typedef store_type::iterator iterator
typedef store_type::reverse_iterator reverse_iterator
typedef store_type::const_iterator const_iterator
typedef store_type::const_reverse_iterator const_reverse_iterator
typedef ValueT value_type
using range_type
using const_range_type

Public Member Functions

 noncopyable_managed_element_block (size_t n)
template<typename Iter>
 noncopyable_managed_element_block (const Iter &it_begin, const Iter &it_end)
Public Member Functions inherited from mdds::mtv::noncopyable_element_block< noncopyable_managed_element_block< TypeId, ValueT, delayed_delete_vector >, TypeId, ValueT *, delayed_delete_vector >
noncopyable_element_block & operator= (const noncopyable_element_block &)=delete
Public Member Functions inherited from mdds::mtv::element_block< noncopyable_managed_element_block< TypeId, ValueT, delayed_delete_vector >, TypeId, ValueT, delayed_delete_vector >
const store_type & store () const noexcept
bool operator== (const noncopyable_managed_element_block< TypeId, ValueT, delayed_delete_vector > &r) const noexcept(nothrow_eq_comparable_v)
bool operator!= (const noncopyable_managed_element_block< TypeId, ValueT, delayed_delete_vector > &r) const noexcept(nothrow_eq_comparable_v)

Static Public Member Functions

static self_type * create_block_with_value (size_t init_size, ValueT *val)
template<typename Iter>
static self_type * create_block_with_values (const Iter &it_begin, const Iter &it_end)
static void overwrite_values (base_element_block &block, size_t pos, size_t len)
static bool equal_block (const base_element_block &left, const base_element_block &right)
static self_type & get (base_element_block &block)
static const self_type & get (const base_element_block &block)
Static Public Member Functions inherited from mdds::mtv::noncopyable_element_block< noncopyable_managed_element_block< TypeId, ValueT, delayed_delete_vector >, TypeId, ValueT *, delayed_delete_vector >
static noncopyable_managed_element_block< TypeId, ValueT, delayed_delete_vector > & get (base_element_block &block)
static const noncopyable_managed_element_block< TypeId, ValueT, delayed_delete_vector > & get (const base_element_block &block)
static noncopyable_managed_element_block< TypeId, ValueT, delayed_delete_vector > * copy_block (const base_element_block &)
static noncopyable_managed_element_block< TypeId, ValueT, delayed_delete_vector > * clone_block (const base_element_block &src)
Static Public Member Functions inherited from mdds::mtv::element_block< noncopyable_managed_element_block< TypeId, ValueT, delayed_delete_vector >, TypeId, ValueT, delayed_delete_vector >
static const value_type & at (const base_element_block &block, typename store_type::size_type pos)
static value_type * data (base_element_block &block)
static store_type::size_type size (const base_element_block &block)
static iterator begin (base_element_block &block)
static iterator end (base_element_block &block)
static const_iterator cbegin (const base_element_block &block)
static const_iterator cend (const base_element_block &block)
static reverse_iterator rbegin (base_element_block &block)
static reverse_iterator rend (base_element_block &block)
static const_reverse_iterator crbegin (const base_element_block &block)
static const_reverse_iterator crend (const base_element_block &block)
static const_range_type range (const base_element_block &block)
static noncopyable_managed_element_block< TypeId, ValueT, delayed_delete_vector > & get (base_element_block &block)
static void set_value (base_element_block &blk, size_t pos, const ValueT &val)
static void get_value (const base_element_block &blk, size_t pos, ValueT &val)
static void append_value (base_element_block &blk, T &&val)
static void emplace_back_value (base_element_block &blk, Args &&... args)
static void prepend_value (base_element_block &blk, const ValueT &val)
static noncopyable_managed_element_block< TypeId, ValueT, delayed_delete_vector > * create_block (size_t init_size)
static void delete_block (const base_element_block *p)
static void resize_block (base_element_block &blk, size_t new_size)
static void print_block (const base_element_block &)
static void erase_value (base_element_block &blk, size_t pos)
static void erase_values (base_element_block &blk, size_t pos, size_t size)
static void append_block (base_element_block &dest, const base_element_block &src)
static void append_values_from_block (base_element_block &dest, const base_element_block &src, size_t begin_pos, size_t len)
static void assign_values_from_block (base_element_block &dest, const base_element_block &src, size_t begin_pos, size_t len)
static void prepend_values_from_block (base_element_block &dest, const base_element_block &src, size_t begin_pos, size_t len)
static void swap_values (base_element_block &blk1, base_element_block &blk2, size_t pos1, size_t pos2, size_t len)
static bool equal_block (const base_element_block &left, const base_element_block &right)
static void set_values (base_element_block &block, size_t pos, const Iter &it_begin, const Iter &it_end)
static void append_values (base_element_block &block, const Iter &it_begin, const Iter &it_end)
static void prepend_values (base_element_block &block, const Iter &it_begin, const Iter &it_end)
static void assign_values (base_element_block &dest, const Iter &it_begin, const Iter &it_end)
static void insert_values (base_element_block &block, size_t pos, const Iter &it_begin, const Iter &it_end)
static size_t capacity (const base_element_block &block)
static void reserve (base_element_block &block, std::size_t size)
static void shrink_to_fit (base_element_block &block)

Additional Inherited Members

Static Public Attributes inherited from mdds::mtv::element_block< noncopyable_managed_element_block< TypeId, ValueT, delayed_delete_vector >, TypeId, ValueT, delayed_delete_vector >
static constexpr element_t block_type
Protected Member Functions inherited from mdds::mtv::base_element_block
 base_element_block (element_t _t) noexcept
Protected Attributes inherited from mdds::mtv::element_block< noncopyable_managed_element_block< TypeId, ValueT, delayed_delete_vector >, TypeId, ValueT, delayed_delete_vector >
store_type m_array
Protected Attributes inherited from mdds::mtv::base_element_block
element_t type

Detailed Description

template<element_t TypeId, typename ValueT, template< typename, typename > class StoreT = delayed_delete_vector>
struct mdds::mtv::noncopyable_managed_element_block< TypeId, ValueT, StoreT >

Template for element block that stores pointers to objects whose life cycles are managed by the block. Unlike the managed_element_block variant, this variant does not allow copying of elements.