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"
35 template <
typename THIS_CONTAINER,
typename BASE_CONTAINER,
bool USING_IREP>
40 template <
typename... ARGS>
51 nonvirtual
size_t capacity ()
const;
63 nonvirtual
void reserve (
size_t slotsAlloced);
78 template <
typename CONTAINER_REP_BASE_CLASS>
81 virtual void shrink_to_fit () = 0;
82 virtual size_t capacity ()
const = 0;
83 virtual void reserve (
size_t slotsAlloced) = 0;
89 template <
typename THIS_CONTAINER_REP,
typename BASE_CONTAINER_REP>
94 template <
typename... ARGS>
96 virtual void shrink_to_fit ()
override;
97 virtual size_t capacity ()
const override;
98 virtual void reserve (
size_t slotsAlloced)
override;
108#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.