static constexpr inline bool S()

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
        );
  }