5#ifndef _Stroika_Foundation_Containers_Private_ArraySupport_h_
6#define _Stroika_Foundation_Containers_Private_ArraySupport_h_
8#include "Stroika/Foundation/StroikaPreComp.h"
10#include "Stroika/Foundation/Common/Common.h"
12#include "Stroika/Foundation/Containers/Common.h"
13#include "Stroika/Foundation/Containers/DataStructures/Array.h"
47 template <
typename THIS_CONTAINER,
typename BASE_CONTAINER,
bool USING_IREP>
52 using BASE_CONTAINER::BASE_CONTAINER;
62 nonvirtual
size_t capacity ()
const;
74 nonvirtual
void reserve (
size_t slotsAlloced);
95 template <
typename CONTAINER_REP_BASE_CLASS>
98 virtual void shrink_to_fit () = 0;
99 virtual size_t capacity ()
const = 0;
100 virtual void reserve (
size_t slotsAlloced) = 0;
124 template <
typename THIS_CONTAINER_REP,
typename BASE_CONTAINER_REP>
129 using BASE_CONTAINER_REP::BASE_CONTAINER_REP;
130 virtual void shrink_to_fit ()
override;
131 virtual size_t capacity ()
const override;
132 virtual void reserve (
size_t slotsAlloced)
override;
142#include "ArraySupport.inl"
ArrayBasedContainer is a Stroika implementation detail, but its public methods are fair game and full...
nonvirtual void shrink_to_fit()
Reduce the space used to store the container contents.
nonvirtual void reserve(size_t slotsAlloced)
impl detail for array based container support (see ArrayBasedContainer docs on bool USING_IREP)
CRTP applied when ArrayBasedContainerIRep used.