in fatal/type/impl/search.h [33:60]
static constexpr inline bool S(
Needle &&needle,
Visitor &&visitor,
Args &&...args
) {
static_assert(Offset + (Size / 2) < size<T>::value, "");
using pivot = at<T, Offset + (Size / 2)>;
using filtered = typename Filter::template apply<pivot>;
return Comparer::template greater<filtered>(needle)
? s<T, Offset, Size / 2>::template S<Comparer, Filter>(
static_cast<Needle &&>(needle),
static_cast<Visitor &&>(visitor),
static_cast<Args &&>(args)...
)
: Comparer::template less<filtered>(needle)
? s<T, (Offset + Size / 2) + 1, Size / 2 - !(Size & 1)>
::template S<Comparer, Filter>(
static_cast<Needle &&>(needle),
static_cast<Visitor &&>(visitor),
static_cast<Args &&>(args)...
)
: (
visitor(
indexed<pivot, Offset + (Size / 2)>(),
static_cast<Args &&>(args)...
), true
);
}