Sequoia
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
sequoia::data_structures::partitioned_sequence_base< T, Container, Partitions > Class Template Reference

Base class for partitioned sequences where data is contiguous across all partitions. More...

#include <PartitionedData.hpp>

Inheritance diagram for sequoia::data_structures::partitioned_sequence_base< T, Container, Partitions >:
sequoia::data_structures::partitioned_sequence< T, Container, Partitions > sequoia::data_structures::static_partitioned_sequence< T, Npartitions, Nelements, Partitions >

Public Types

using value_type = T
 
using container_type = Container
 
using partitions_type = Partitions
 
using index_type = typename partitions_type::value_type
 
using size_type = std::common_type_t< index_type, typename container_type::size_type >
 
using partition_iterator = data_structures::partition_iterator< container_type, index_type >
 
using const_partition_iterator = data_structures::const_partition_iterator< container_type, index_type >
 
using reverse_partition_iterator = data_structures::reverse_partition_iterator< container_type, index_type >
 
using const_reverse_partition_iterator = data_structures::const_reverse_partition_iterator< container_type, index_type >
 
using partition_range = std::ranges::subrange< partition_iterator >
 
using const_partition_range = std::ranges::subrange< const_partition_iterator >
 

Public Member Functions

constexpr partitioned_sequence_base (const partitioned_sequence_base &)=default
 
constexpr bool empty () const noexcept
 
constexpr auto size () const noexcept
 
constexpr size_type size_of_partition (index_type i) const
 
constexpr auto num_partitions () const noexcept
 
constexpr partition_iterator begin_partition (const index_type i) noexcept
 
constexpr partition_iterator end_partition (const index_type i) noexcept
 
constexpr const_partition_iterator begin_partition (const index_type i) const noexcept
 
constexpr const_partition_iterator end_partition (const index_type i) const noexcept
 
constexpr const_partition_iterator cbegin_partition (const index_type i) const noexcept
 
constexpr const_partition_iterator cend_partition (const index_type i) const noexcept
 
constexpr reverse_partition_iterator rbegin_partition (const index_type i) noexcept
 
constexpr reverse_partition_iterator rend_partition (const index_type i) noexcept
 
constexpr const_reverse_partition_iterator rbegin_partition (const index_type i) const noexcept
 
constexpr const_reverse_partition_iterator rend_partition (const index_type i) const noexcept
 
constexpr const_reverse_partition_iterator crbegin_partition (const index_type i) const noexcept
 
constexpr const_reverse_partition_iterator crend_partition (const index_type i) const noexcept
 
constexpr partition_range partition (const index_type i) noexcept
 
constexpr const_partition_range partition (const index_type i) const noexcept
 
constexpr const_partition_range cpartition (const index_type i) const noexcept
 
constexpr const_partition_iterator operator[] (const index_type i) const noexcept
 
constexpr partition_iterator operator[] (const index_type i) noexcept
 
constexpr void swap_partitions (index_type i, index_type j)
 
template<alloc Allocator, alloc PartitionsAllocator>
requires (std::allocator_traits<Allocator>::propagate_on_container_copy_assignment::value && std::allocator_traits<PartitionsAllocator>::propagate_on_container_copy_assignment::value)
void reset (const Allocator &allocator, const PartitionsAllocator &partitionsAllocator) noexcept
 

Protected Member Functions

constexpr partitioned_sequence_base (const std::pair< partitions_type, container_type > &data)
 
constexpr partitioned_sequence_base (partitioned_sequence_base &&) noexcept=default
 
constexpr partitioned_sequence_baseoperator= (partitioned_sequence_base &&) noexcept=default
 
constexpr partitioned_sequence_baseoperator= (const partitioned_sequence_base &)=default
 
void swap (partitioned_sequence_base &other) noexcept(noexcept(std::ranges::swap(this->m_Partitions, other.m_Partitions)) &&noexcept(std::ranges::swap(this->m_Data, other.m_Data)))
 
auto get_allocator () const
 
auto get_partitions_allocator () const
 
template<alloc Allocator>
constexpr partitioned_sequence_base (const Allocator &allocator) noexcept
 
template<alloc Allocator, alloc PartitionsAllocator>
constexpr partitioned_sequence_base (const Allocator &allocator, const PartitionsAllocator &partitionsAllocator) noexcept
 
template<alloc Allocator, alloc PartitionsAllocator>
constexpr partitioned_sequence_base (std::initializer_list< std::initializer_list< T > > list, const Allocator &allocator, const PartitionsAllocator &partitionsAllocator)
 
template<alloc Allocator, alloc PartitionsAllocator>
constexpr partitioned_sequence_base (const partitioned_sequence_base &other, const Allocator &allocator, const PartitionsAllocator &partitionsAllocator)
 
template<alloc Allocator, alloc PartitionsAllocator>
constexpr partitioned_sequence_base (partitioned_sequence_base &&in, const Allocator &allocator, const PartitionsAllocator &partitionsAllocator)
 
void add_slot ()
 
void insert_slot (const size_t pos)
 
void erase_slot (const index_type n)
 
void reserve (const size_type size)
 
index_type capacity () const noexcept
 
void reserve_partitions (const size_type numPartitions)
 
index_type num_partitions_capacity () const noexcept
 
void shrink_to_fit ()
 
void clear () noexcept
 
template<class... Args>
void push_back_to_partition (const index_type index, Args &&... args)
 
template<class... Args>
partition_iterator insert_to_partition (const_partition_iterator pos, Args &&... args)
 
template<class... Args>
partition_iterator insert_to_partition (const size_type index, const size_type pos, Args &&... args)
 
partition_iterator erase_from_partition (const_partition_iterator iter)
 
partition_iterator erase_from_partition (const_partition_iterator first, const_partition_iterator last)
 
partition_iterator erase_from_partition (const index_type index, const size_type pos)
 

Friends

constexpr bool operator== (const partitioned_sequence_base &, const partitioned_sequence_base &) noexcept=default
 

Detailed Description

template<class T, class Container, class Partitions>
class sequoia::data_structures::partitioned_sequence_base< T, Container, Partitions >

Base class for partitioned sequences where data is contiguous across all partitions.


The documentation for this class was generated from the following file: