Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
IterableUtils.h
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
4
5#ifndef _Stroika_Foundation_Containers_Private_IterableUtils_h_
6#define _Stroika_Foundation_Containers_Private_IterableUtils_h_
7
8#include "Stroika/Foundation/StroikaPreComp.h"
9
10#include <optional>
11
12#include "Stroika/Foundation/Common/Common.h"
13
14#include "Stroika/Foundation/Containers/Common.h"
15
16/**
17 * Private utilities to support building subtypes of Containers::Iterable<T>
18 *
19 * TODO:
20 *
21 * Notes:
22 *
23 */
24
26
27 template <typename T, typename ELEMENT_COMPARE_EQUALS_TYPE>
28 optional<size_t> IndexOf_ (const Iterable<T>& c, ArgByValueType<T> item, const ELEMENT_COMPARE_EQUALS_TYPE& equalsComparer = {});
29
30 template <typename T, typename ELEMENT_COMPARE_EQUALS_TYPE>
31 optional<size_t> IndexOf_ (const Iterable<T>& c, const Iterable<T>& rhs, const ELEMENT_COMPARE_EQUALS_TYPE& equalsComparer = {});
32
33}
34
35/*
36 ********************************************************************************
37 ***************************** Implementation Details ***************************
38 ********************************************************************************
39 */
40#include "IterableUtils.inl"
41
42#endif /*_Stroika_Foundation_Containers_Private_IterableUtils_h_ */