summaryrefslogtreecommitdiff
path: root/src/dynamic-array.hpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2024-01-09 20:24:26 -0500
committerJonathan Bradley <jcb@pikum.xyz>2024-01-10 11:30:26 -0500
commit0a382e78b6cbc77156d78df4e7b0c2854cbb0cd1 (patch)
tree8e810ee9500d8ca0a304917fe0b19e36a44bb9fd /src/dynamic-array.hpp
parentf947590b909b287c0a724def6ef03937f85c361b (diff)
DynArray - allow passing a value through
Diffstat (limited to 'src/dynamic-array.hpp')
-rw-r--r--src/dynamic-array.hpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/dynamic-array.hpp b/src/dynamic-array.hpp
index 039dcd0..4003b63 100644
--- a/src/dynamic-array.hpp
+++ b/src/dynamic-array.hpp
@@ -32,7 +32,8 @@ struct DynArray: DynArrayBase {
T *GetPtr();
const int64_t Count();
bool Has(const T &val);
- int64_t FindFirstIndex(bool fn(const T&));
+ template <typename T2>
+ int64_t FindFirstIndex(bool fn(const T&, const T2&), const T2 &val);
T& Push();
void Push(const T &val);
T Pop();
@@ -136,9 +137,11 @@ template <typename T> inline bool DynArray<T>::Has(const T &val) {
return false;
}
-template <typename T> inline int64_t DynArray<T>::FindFirstIndex(bool Fn(const T&)) {
+template <typename T>
+template <typename T2>
+inline int64_t DynArray<T>::FindFirstIndex(bool Fn(const T&, const T2&), const T2 &val) {
for (long i = 0; i < this->elementCount; ++i) {
- if (Fn(*this)[i]) return i;
+ if (Fn((*this)[i], val)) return i;
}
return -1;
}