diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2024-01-09 20:24:26 -0500 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2024-01-10 11:30:26 -0500 |
| commit | 0a382e78b6cbc77156d78df4e7b0c2854cbb0cd1 (patch) | |
| tree | 8e810ee9500d8ca0a304917fe0b19e36a44bb9fd /src/dynamic-array.hpp | |
| parent | f947590b909b287c0a724def6ef03937f85c361b (diff) | |
DynArray - allow passing a value through
Diffstat (limited to 'src/dynamic-array.hpp')
| -rw-r--r-- | src/dynamic-array.hpp | 9 |
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; } |
