8 template <
typename T,
typename ELEMENT_COMPARE_EQUALS_TYPE>
9 optional<size_t> IndexOf_ (
const Iterable<T>& c, ArgByValueType<T> item,
const ELEMENT_COMPARE_EQUALS_TYPE& equalsComparer)
11 constexpr bool kUseApply_{
true};
14 return c.Find ([&n, item, equalsComparer] (ArgByValueType<T> ii) {
return equalsComparer (ii, item) ? true : (n++,
false); })
20 for (
const T& i : c) {
21 if (equalsComparer (i, item)) {
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)
34 for (
auto i = c.begin (); i != c.end (); ++i, ++n) {
35 bool foundDiff =
false;
37 for (
const T& r : rhs) {
41 if (not(equalsComparer (r, *ii))) {