momo  3.12
momo::SegmentedArrayCore< TItemTraits, TSettings > Class Template Reference

#include <SegmentedArray.h>

Public Types

typedef TItemTraits ItemTraits
 
typedef TSettings Settings
 
typedef ItemTraits::Item Item
 
typedef ItemTraits::MemManager MemManager
 
typedef internal::ArrayIndexIterator< SegmentedArrayCore, ItemIterator
 
typedef Iterator::ConstIterator ConstIterator
 

Public Member Functions

 SegmentedArrayCore () noexcept(std::is_nothrow_default_constructible< MemManager >::value)
 
 SegmentedArrayCore (MemManager memManager) noexcept
 
 SegmentedArrayCore (size_t count, MemManager memManager=MemManager())
 
 SegmentedArrayCore (size_t count, const Item &item, MemManager memManager=MemManager())
 
template<typename ArgIterator , typename ArgSentinel , typename = decltype(*std::declval<ArgIterator>())>
 SegmentedArrayCore (ArgIterator begin, ArgSentinel end, MemManager memManager=MemManager())
 
 SegmentedArrayCore (std::initializer_list< Item > items)
 
 SegmentedArrayCore (std::initializer_list< Item > items, MemManager memManager)
 
 SegmentedArrayCore (SegmentedArrayCore &&array) noexcept
 
 SegmentedArrayCore (const SegmentedArrayCore &array)
 
 SegmentedArrayCore (const SegmentedArrayCore &array, bool shrink)
 
 SegmentedArrayCore (const SegmentedArrayCore &array, MemManager memManager)
 
 ~SegmentedArrayCore () noexcept
 
SegmentedArrayCoreoperator= (SegmentedArrayCore &&array) noexcept
 
SegmentedArrayCoreoperator= (const SegmentedArrayCore &array)
 
void Swap (SegmentedArrayCore &array) noexcept
 
ConstIterator GetBegin () const noexcept
 
Iterator GetBegin () noexcept
 
ConstIterator GetEnd () const noexcept
 
Iterator GetEnd () noexcept
 
const MemManagerGetMemManager () const noexcept
 
MemManagerGetMemManager () noexcept
 
size_t GetCount () const noexcept
 
template<typename ItemMultiCreator >
void SetCountCrt (size_t count, const ItemMultiCreator &itemMultiCreator)
 
void SetCount (size_t count)
 
void SetCount (size_t count, const Item &item)
 
bool IsEmpty () const noexcept
 
void Clear (bool shrink=false) noexcept
 
size_t GetCapacity () const noexcept
 
void Reserve (size_t capacity)
 
void Shrink (size_t capacity=0) noexcept
 
bool TryShrink (size_t capacity=0) noexcept
 
const Itemoperator[] (size_t index) const
 
Itemoperator[] (size_t index)
 
const ItemGetBackItem () const
 
ItemGetBackItem ()
 
template<typename ItemCreator >
void AddBackNogrowCrt (ItemCreator &&itemCreator)
 
template<typename... ItemArgs>
void AddBackNogrowVar (ItemArgs &&... itemArgs)
 
void AddBackNogrow (Item &&item)
 
void AddBackNogrow (const Item &item)
 
template<typename ItemCreator >
void AddBackCrt (ItemCreator &&itemCreator)
 
template<typename... ItemArgs>
void AddBackVar (ItemArgs &&... itemArgs)
 
void AddBack (Item &&item)
 
void AddBack (const Item &item)
 
template<typename ItemCreator >
void InsertCrt (size_t index, ItemCreator &&itemCreator)
 
template<typename... ItemArgs>
void InsertVar (size_t index, ItemArgs &&... itemArgs)
 
void Insert (size_t index, Item &&item)
 
void Insert (size_t index, const Item &item)
 
void Insert (size_t index, size_t count, const Item &item)
 
template<typename ArgIterator , typename ArgSentinel , typename = decltype(*std::declval<ArgIterator>())>
void Insert (size_t index, ArgIterator begin, ArgSentinel end)
 
void Insert (size_t index, std::initializer_list< Item > items)
 
void RemoveBack (size_t count=1)
 
void Remove (size_t index, size_t count=1)
 
template<typename ItemFilter >
internal::EnableIf< internal::IsInvocable< const ItemFilter &, bool, const Item & >::value, size_t > Remove (const ItemFilter &itemFilter)
 
template<typename ItemEqualComparer = std::equal_to<Item>>
bool IsEqual (const SegmentedArrayCore &array, const ItemEqualComparer &itemEqualComp=ItemEqualComparer()) const
 
template<typename ItemEqualComparer = std::equal_to<Item>>
bool Contains (const Item &item, const ItemEqualComparer &itemEqualComp=ItemEqualComparer()) const
 

Static Public Member Functions

static SegmentedArrayCore CreateCap (size_t capacity, MemManager memManager=MemManager())
 
template<typename ItemMultiCreator >
static SegmentedArrayCore CreateCrt (size_t count, const ItemMultiCreator &itemMultiCreator, MemManager memManager=MemManager())
 

Detailed Description

template<typename TItemTraits, typename TSettings = SegmentedArraySettings<>>
class momo::SegmentedArrayCore< TItemTraits, TSettings >

All SegmentedArrayCore functions and constructors have strong exception safety, but not the following cases:

  • Functions Insert, InsertVar, InsertCrt, Remove have basic exception safety.

Swap and move operations invalidate all container iterators.

Member Typedef Documentation

◆ ConstIterator

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
typedef Iterator::ConstIterator momo::SegmentedArrayCore< TItemTraits, TSettings >::ConstIterator

◆ Item

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
typedef ItemTraits::Item momo::SegmentedArrayCore< TItemTraits, TSettings >::Item

◆ ItemTraits

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
typedef TItemTraits momo::SegmentedArrayCore< TItemTraits, TSettings >::ItemTraits

◆ Iterator

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
typedef internal::ArrayIndexIterator<SegmentedArrayCore, Item> momo::SegmentedArrayCore< TItemTraits, TSettings >::Iterator

◆ MemManager

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
typedef ItemTraits::MemManager momo::SegmentedArrayCore< TItemTraits, TSettings >::MemManager

◆ Settings

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
typedef TSettings momo::SegmentedArrayCore< TItemTraits, TSettings >::Settings

Constructor & Destructor Documentation

◆ SegmentedArrayCore() [1/11]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
momo::SegmentedArrayCore< TItemTraits, TSettings >::SegmentedArrayCore ( )
inlinenoexcept

◆ SegmentedArrayCore() [2/11]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
momo::SegmentedArrayCore< TItemTraits, TSettings >::SegmentedArrayCore ( MemManager  memManager)
inlineexplicitnoexcept

◆ SegmentedArrayCore() [3/11]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
momo::SegmentedArrayCore< TItemTraits, TSettings >::SegmentedArrayCore ( size_t  count,
MemManager  memManager = MemManager() 
)
inlineexplicit

◆ SegmentedArrayCore() [4/11]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
momo::SegmentedArrayCore< TItemTraits, TSettings >::SegmentedArrayCore ( size_t  count,
const Item item,
MemManager  memManager = MemManager() 
)
inlineexplicit

◆ SegmentedArrayCore() [5/11]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
template<typename ArgIterator , typename ArgSentinel , typename = decltype(*std::declval<ArgIterator>())>
momo::SegmentedArrayCore< TItemTraits, TSettings >::SegmentedArrayCore ( ArgIterator  begin,
ArgSentinel  end,
MemManager  memManager = MemManager() 
)
inlineexplicit

◆ SegmentedArrayCore() [6/11]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
momo::SegmentedArrayCore< TItemTraits, TSettings >::SegmentedArrayCore ( std::initializer_list< Item items)
inline

◆ SegmentedArrayCore() [7/11]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
momo::SegmentedArrayCore< TItemTraits, TSettings >::SegmentedArrayCore ( std::initializer_list< Item items,
MemManager  memManager 
)
inlineexplicit

◆ SegmentedArrayCore() [8/11]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
momo::SegmentedArrayCore< TItemTraits, TSettings >::SegmentedArrayCore ( SegmentedArrayCore< TItemTraits, TSettings > &&  array)
inlinenoexcept

◆ SegmentedArrayCore() [9/11]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
momo::SegmentedArrayCore< TItemTraits, TSettings >::SegmentedArrayCore ( const SegmentedArrayCore< TItemTraits, TSettings > &  array)
inline

◆ SegmentedArrayCore() [10/11]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
momo::SegmentedArrayCore< TItemTraits, TSettings >::SegmentedArrayCore ( const SegmentedArrayCore< TItemTraits, TSettings > &  array,
bool  shrink 
)
inlineexplicit

◆ SegmentedArrayCore() [11/11]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
momo::SegmentedArrayCore< TItemTraits, TSettings >::SegmentedArrayCore ( const SegmentedArrayCore< TItemTraits, TSettings > &  array,
MemManager  memManager 
)
inlineexplicit

◆ ~SegmentedArrayCore()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
momo::SegmentedArrayCore< TItemTraits, TSettings >::~SegmentedArrayCore ( )
inlinenoexcept

Member Function Documentation

◆ AddBack() [1/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::AddBack ( const Item item)
inline

◆ AddBack() [2/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::AddBack ( Item &&  item)
inline

◆ AddBackCrt()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
template<typename ItemCreator >
void momo::SegmentedArrayCore< TItemTraits, TSettings >::AddBackCrt ( ItemCreator &&  itemCreator)
inline

◆ AddBackNogrow() [1/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::AddBackNogrow ( const Item item)
inline

◆ AddBackNogrow() [2/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::AddBackNogrow ( Item &&  item)
inline

◆ AddBackNogrowCrt()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
template<typename ItemCreator >
void momo::SegmentedArrayCore< TItemTraits, TSettings >::AddBackNogrowCrt ( ItemCreator &&  itemCreator)
inline

◆ AddBackNogrowVar()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
template<typename... ItemArgs>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::AddBackNogrowVar ( ItemArgs &&...  itemArgs)
inline

◆ AddBackVar()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
template<typename... ItemArgs>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::AddBackVar ( ItemArgs &&...  itemArgs)
inline

◆ Clear()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::Clear ( bool  shrink = false)
inlinenoexcept

◆ Contains()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
template<typename ItemEqualComparer = std::equal_to<Item>>
bool momo::SegmentedArrayCore< TItemTraits, TSettings >::Contains ( const Item item,
const ItemEqualComparer &  itemEqualComp = ItemEqualComparer() 
) const
inline

◆ CreateCap()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
static SegmentedArrayCore momo::SegmentedArrayCore< TItemTraits, TSettings >::CreateCap ( size_t  capacity,
MemManager  memManager = MemManager() 
)
inlinestatic

◆ CreateCrt()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
template<typename ItemMultiCreator >
static SegmentedArrayCore momo::SegmentedArrayCore< TItemTraits, TSettings >::CreateCrt ( size_t  count,
const ItemMultiCreator &  itemMultiCreator,
MemManager  memManager = MemManager() 
)
inlinestatic

◆ GetBackItem() [1/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
Item& momo::SegmentedArrayCore< TItemTraits, TSettings >::GetBackItem ( )
inline

◆ GetBackItem() [2/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
const Item& momo::SegmentedArrayCore< TItemTraits, TSettings >::GetBackItem ( ) const
inline

◆ GetBegin() [1/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
ConstIterator momo::SegmentedArrayCore< TItemTraits, TSettings >::GetBegin ( ) const
inlinenoexcept

◆ GetBegin() [2/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
Iterator momo::SegmentedArrayCore< TItemTraits, TSettings >::GetBegin ( )
inlinenoexcept

◆ GetCapacity()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
size_t momo::SegmentedArrayCore< TItemTraits, TSettings >::GetCapacity ( ) const
inlinenoexcept

◆ GetCount()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
size_t momo::SegmentedArrayCore< TItemTraits, TSettings >::GetCount ( ) const
inlinenoexcept

◆ GetEnd() [1/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
ConstIterator momo::SegmentedArrayCore< TItemTraits, TSettings >::GetEnd ( ) const
inlinenoexcept

◆ GetEnd() [2/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
Iterator momo::SegmentedArrayCore< TItemTraits, TSettings >::GetEnd ( )
inlinenoexcept

◆ GetMemManager() [1/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
const MemManager& momo::SegmentedArrayCore< TItemTraits, TSettings >::GetMemManager ( ) const
inlinenoexcept

◆ GetMemManager() [2/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
MemManager& momo::SegmentedArrayCore< TItemTraits, TSettings >::GetMemManager ( )
inlinenoexcept

◆ Insert() [1/5]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
template<typename ArgIterator , typename ArgSentinel , typename = decltype(*std::declval<ArgIterator>())>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::Insert ( size_t  index,
ArgIterator  begin,
ArgSentinel  end 
)
inline

◆ Insert() [2/5]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::Insert ( size_t  index,
const Item item 
)
inline

◆ Insert() [3/5]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::Insert ( size_t  index,
Item &&  item 
)
inline

◆ Insert() [4/5]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::Insert ( size_t  index,
size_t  count,
const Item item 
)
inline

◆ Insert() [5/5]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::Insert ( size_t  index,
std::initializer_list< Item items 
)
inline

◆ InsertCrt()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
template<typename ItemCreator >
void momo::SegmentedArrayCore< TItemTraits, TSettings >::InsertCrt ( size_t  index,
ItemCreator &&  itemCreator 
)
inline

◆ InsertVar()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
template<typename... ItemArgs>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::InsertVar ( size_t  index,
ItemArgs &&...  itemArgs 
)
inline

◆ IsEmpty()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
bool momo::SegmentedArrayCore< TItemTraits, TSettings >::IsEmpty ( ) const
inlinenoexcept

◆ IsEqual()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
template<typename ItemEqualComparer = std::equal_to<Item>>
bool momo::SegmentedArrayCore< TItemTraits, TSettings >::IsEqual ( const SegmentedArrayCore< TItemTraits, TSettings > &  array,
const ItemEqualComparer &  itemEqualComp = ItemEqualComparer() 
) const
inline

◆ operator=() [1/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
SegmentedArrayCore& momo::SegmentedArrayCore< TItemTraits, TSettings >::operator= ( const SegmentedArrayCore< TItemTraits, TSettings > &  array)
inline

◆ operator=() [2/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
SegmentedArrayCore& momo::SegmentedArrayCore< TItemTraits, TSettings >::operator= ( SegmentedArrayCore< TItemTraits, TSettings > &&  array)
inlinenoexcept

◆ operator[]() [1/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
Item& momo::SegmentedArrayCore< TItemTraits, TSettings >::operator[] ( size_t  index)
inline

◆ operator[]() [2/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
const Item& momo::SegmentedArrayCore< TItemTraits, TSettings >::operator[] ( size_t  index) const
inline

◆ Remove() [1/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
template<typename ItemFilter >
internal::EnableIf<internal::IsInvocable<const ItemFilter&, bool, const Item&>::value, size_t> momo::SegmentedArrayCore< TItemTraits, TSettings >::Remove ( const ItemFilter &  itemFilter)
inline

◆ Remove() [2/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::Remove ( size_t  index,
size_t  count = 1 
)
inline

◆ RemoveBack()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::RemoveBack ( size_t  count = 1)
inline

◆ Reserve()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::Reserve ( size_t  capacity)
inline

◆ SetCount() [1/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::SetCount ( size_t  count)
inline

◆ SetCount() [2/2]

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::SetCount ( size_t  count,
const Item item 
)
inline

◆ SetCountCrt()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
template<typename ItemMultiCreator >
void momo::SegmentedArrayCore< TItemTraits, TSettings >::SetCountCrt ( size_t  count,
const ItemMultiCreator &  itemMultiCreator 
)
inline

◆ Shrink()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::Shrink ( size_t  capacity = 0)
inlinenoexcept

◆ Swap()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
void momo::SegmentedArrayCore< TItemTraits, TSettings >::Swap ( SegmentedArrayCore< TItemTraits, TSettings > &  array)
inlinenoexcept

◆ TryShrink()

template<typename TItemTraits , typename TSettings = SegmentedArraySettings<>>
bool momo::SegmentedArrayCore< TItemTraits, TSettings >::TryShrink ( size_t  capacity = 0)
inlinenoexcept

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