parent
f4ed3bf20b
commit
921b4e46b0
|
@ -215,7 +215,9 @@ struct
|
||||||
|
|
||||||
template <typename Pred, typename Val> auto
|
template <typename Pred, typename Val> auto
|
||||||
impl (Pred&& p, Val &&v, hb_priority<1>) const HB_AUTO_RETURN
|
impl (Pred&& p, Val &&v, hb_priority<1>) const HB_AUTO_RETURN
|
||||||
(hb_deref (hb_forward<Pred> (p)).has (hb_forward<Val> (v)))
|
(
|
||||||
|
hb_deref (hb_forward<Pred> (p)).has (hb_forward<Val> (v))
|
||||||
|
)
|
||||||
|
|
||||||
template <typename Pred, typename Val> auto
|
template <typename Pred, typename Val> auto
|
||||||
impl (Pred&& p, Val &&v, hb_priority<0>) const HB_AUTO_RETURN
|
impl (Pred&& p, Val &&v, hb_priority<0>) const HB_AUTO_RETURN
|
||||||
|
@ -269,7 +271,9 @@ struct
|
||||||
|
|
||||||
template <typename Proj, typename Val> auto
|
template <typename Proj, typename Val> auto
|
||||||
impl (Proj&& f, Val &&v, hb_priority<2>) const HB_AUTO_RETURN
|
impl (Proj&& f, Val &&v, hb_priority<2>) const HB_AUTO_RETURN
|
||||||
(hb_deref (hb_forward<Proj> (f)).get (hb_forward<Val> (v)))
|
(
|
||||||
|
hb_deref (hb_forward<Proj> (f)).get (hb_forward<Val> (v))
|
||||||
|
)
|
||||||
|
|
||||||
template <typename Proj, typename Val> auto
|
template <typename Proj, typename Val> auto
|
||||||
impl (Proj&& f, Val &&v, hb_priority<1>) const HB_AUTO_RETURN
|
impl (Proj&& f, Val &&v, hb_priority<1>) const HB_AUTO_RETURN
|
||||||
|
@ -296,6 +300,40 @@ struct
|
||||||
}
|
}
|
||||||
HB_FUNCOBJ (hb_get);
|
HB_FUNCOBJ (hb_get);
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
|
||||||
|
template <typename T1, typename T2> auto
|
||||||
|
impl (T1&& v1, T2 &&v2, hb_priority<2>) const HB_AUTO_RETURN
|
||||||
|
(
|
||||||
|
hb_forward<T2> (v2). cmp (hb_forward<T1> (v1)) == 0
|
||||||
|
)
|
||||||
|
|
||||||
|
template <typename T1, typename T2> auto
|
||||||
|
impl (T1&& v1, T2 &&v2, hb_priority<1>) const HB_AUTO_RETURN
|
||||||
|
(
|
||||||
|
hb_forward<T1> (v1). cmp (hb_forward<T2> (v2)) == 0
|
||||||
|
)
|
||||||
|
|
||||||
|
template <typename T1, typename T2> auto
|
||||||
|
impl (T1&& v1, T2 &&v2, hb_priority<0>) const HB_AUTO_RETURN
|
||||||
|
(
|
||||||
|
hb_forward<T1> (v1) == hb_forward<T2> (v2)
|
||||||
|
)
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
template <typename T1, typename T2> auto
|
||||||
|
operator () (T1&& v1, T2 &&v2) const HB_AUTO_RETURN
|
||||||
|
(
|
||||||
|
impl (hb_forward<T1> (v1),
|
||||||
|
hb_forward<T2> (v2),
|
||||||
|
hb_prioritize)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
HB_FUNCOBJ (hb_equal);
|
||||||
|
|
||||||
|
|
||||||
template <typename T1, typename T2>
|
template <typename T1, typename T2>
|
||||||
struct hb_pair_t
|
struct hb_pair_t
|
||||||
|
|
|
@ -142,7 +142,7 @@ struct hb_array_t : hb_iter_with_fallback_t<hb_array_t<Type>, Type&>
|
||||||
bool lfind (const T &x, unsigned *pos = nullptr) const
|
bool lfind (const T &x, unsigned *pos = nullptr) const
|
||||||
{
|
{
|
||||||
for (unsigned i = 0; i < length; ++i)
|
for (unsigned i = 0; i < length; ++i)
|
||||||
if (!this->arrayZ[i].cmp (x))
|
if (hb_equal (this->arrayZ[i], x))
|
||||||
{
|
{
|
||||||
if (pos)
|
if (pos)
|
||||||
*pos = i;
|
*pos = i;
|
||||||
|
|
Loading…
Reference in New Issue