diff options
| -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; } |
