13#ifndef RANGES_V3_FUNCTIONAL_NOT_FN_HPP
14#define RANGES_V3_FUNCTIONAL_NOT_FN_HPP
24#include <range/v3/utility/static_const.hpp>
26#include <range/v3/detail/prologue.hpp>
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)...);
76 template(
typename Pred)(
77 requires move_constructible<detail::decay_t<Pred>> AND
78 constructible_from<detail::decay_t<Pred>, Pred>)
96#include <range/v3/detail/epilogue.hpp>
RANGES_INLINE_VARIABLE(detail::to_container_fn< detail::from_range< std::vector > >, to_vector) template< template< typename... > class ContT > auto to(RANGES_HIDDEN_DETAIL(detail
For initializing a container of the specified type with the elements of an Range.
Definition: conversion.hpp:399
typename Fn::template invoke< Args... > invoke
Evaluate the invocable Fn with the arguments Args.
Definition: meta.hpp:541
compose< quote< not_ >, Fn > not_fn
Logically negate the result of invocable Fn.
Definition: meta.hpp:3009
Definition: not_fn.hpp:34
Definition: not_fn.hpp:75