friend auto tag_invoke()

in include/unifex/repeat_effect_until.hpp [218:230]


  friend auto tag_invoke(tag_t<unifex::connect>, Sender&& s, Receiver&& r)
       noexcept(
        std::is_nothrow_constructible_v<Source, decltype((static_cast<Sender&&>(s).source_))> &&
        std::is_nothrow_constructible_v<Predicate, decltype((static_cast<Sender&&>(s).predicate_))> &&
        std::is_nothrow_constructible_v<remove_cvref_t<Receiver>, Receiver> &&
        is_nothrow_connectable_v<Source&, receiver_t<Source, Predicate, remove_cvref_t<Receiver>>>)
        -> operation_type<Source, Predicate, remove_cvref_t<Receiver>> {
    return operation_type<Source, Predicate, remove_cvref_t<Receiver>>{
      static_cast<Sender&&>(s).source_, 
      static_cast<Sender&&>(s).predicate_, 
      (Receiver&&)r
    };
  }