36 CPP_assert(same_as<FD, detail::decay_t<FD>> && move_constructible<FD>);
37 RANGES_NO_UNIQUE_ADDRESS FD pred_;
42 noexcept(std::is_nothrow_default_constructible<FD>::value)
43 requires default_constructible<FD>)
47 constructible_from<FD, T>)
49 : pred_(
static_cast<T &&
>(pred))
52 template(
typename... Args)(
54 constexpr bool operator()(Args &&... args) &
56 return !invoke(pred_,
static_cast<Args &&
>(args)...);
59 template(
typename... Args)(
61 constexpr bool operator()(Args &&... args)
const &
63 return !invoke(pred_,
static_cast<Args &&
>(args)...);
66 template(
typename... Args)(
68 constexpr bool operator()(Args &&... args) &&
70 return !invoke(
static_cast<FD &&
>(pred_),
static_cast<Args &&
>(args)...);