53 using inherited = STL_CONTAINER_OF_T;
56 using value_type =
typename STL_CONTAINER_OF_T::value_type;
57 using iterator =
typename STL_CONTAINER_OF_T::iterator;
58 using const_iterator =
typename STL_CONTAINER_OF_T::const_iterator;
70 template <
typename... EXTRA_ARGS>
106 template <invocable<typename STL_CONTAINER_OF_T::const_iterator, typename STL_CONTAINER_OF_T::const_iterator> POINT_TO_SAME_THING>
108 requires (convertible_to<invoke_result_t<POINT_TO_SAME_THING, typename STL_CONTAINER_OF_T::const_iterator, typename STL_CONTAINER_OF_T::const_iterator>,
bool>)
112 nonvirtual
bool contains (Common::ArgByValueType<value_type> item) const;
119 template <invocable<typename STL_CONTAINER_OF_T::value_type> FUNCTION>
120 nonvirtual
void Apply (FUNCTION&& doToElement) const;
128 template <predicate<typename STL_CONTAINER_OF_T::value_type> FUNCTION>
129 nonvirtual iterator
Find (FUNCTION&& firstThat);
130 template <predicate<typename STL_CONTAINER_OF_T::value_type> FUNCTION>
131 nonvirtual const_iterator
Find (FUNCTION&& firstThat) const;
134 template <predicate<typename STL_CONTAINER_OF_T::value_type> PREDICATE>
135 nonvirtual
bool FindIf (PREDICATE&& pred) const;
138 nonvirtual
void Invariant () const noexcept;
141 nonvirtual iterator remove_constness (const_iterator it);
162 using iterator_category = forward_iterator_tag;
163 using value_type = STLContainerWrapper::value_type;
164 using difference_type = ptrdiff_t;
165 using pointer =
const value_type*;
166 using reference =
const value_type&;
188 explicit operator
bool () const;
191 nonvirtual
bool Done () const noexcept;
197 nonvirtual const value_type& operator* () const;
200 nonvirtual const value_type* operator->() const;
224 const_iterator fStdIterator_{};