Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::v3::logical_negate_< FD > Struct Template Reference

Public Member Functions

constexpr logical_negate_ () noexcept(std::is_nothrow_default_constructible< FD >::value)
 
template<typename T , typename U = meta::if_c<!Same<detail::decay_t<T>, logical_negate_>(), T>, requires = (Constructible<FD, U>())>
constexpr logical_negate_ (T &&pred)
 
template<typename ... Args, requires = (Predicate<FD &, Args...>())>
auto operator() (Args &&...args) &noexcept(noexcept(decltype(!invoke(std::declval< FD &>(), static_cast< Args &&>(args)...))(!invoke(std::declval< FD &>(), static_cast< Args &&>(args)...)))) -> decltype(!invoke(std::declval< FD &>(), static_cast< Args &&>(args)...))
 
template<typename ... Args, requires = (Predicate<FD const &, Args...>())>
constexpr auto operator() (Args &&...args) const &noexcept(noexcept(decltype(!invoke(std::declval< FD const &>(), static_cast< Args &&>(args)...))(!invoke(std::declval< FD const &>(), static_cast< Args &&>(args)...)))) -> decltype(!invoke(std::declval< FD const &>(), static_cast< Args &&>(args)...))
 
template<typename ... Args, requires = (Predicate<FD, Args...>())>
auto operator() (Args &&...args) &&noexcept(noexcept(decltype(!invoke(std::declval< FD >(), static_cast< Args &&>(args)...))(!invoke(std::declval< FD >(), static_cast< Args &&>(args)...)))) -> decltype(!invoke(std::declval< FD >(), static_cast< Args &&>(args)...))
 
template<typename ... Args, requires = (Predicate<FD const, Args...>())>
auto operator() (Args &&...args) const &&noexcept(noexcept(decltype(!invoke(std::declval< FD const >(), static_cast< Args &&>(args)...))(!invoke(std::declval< FD const >(), static_cast< Args &&>(args)...)))) -> decltype(!invoke(std::declval< FD const >(), static_cast< Args &&>(args)...))
 

Member Function Documentation

◆ operator()() [1/3]

template<typename FD >
template<typename ... Args, requires = (Predicate<FD const &, Args...>())>
constexpr auto ranges::v3::logical_negate_< FD >::operator() ( Args &&...  args) const & -> decltype( !invoke(std::declval<FD const &>(), static_cast<Args &&>(args)...) )
noexcept

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator()() [2/3]

template<typename FD >
template<typename ... Args, requires = (Predicate<FD, Args...>())>
auto ranges::v3::logical_negate_< FD >::operator() ( Args &&...  args) && -> decltype( !invoke(std::declval<FD>(), static_cast<Args &&>(args)...) )
noexcept

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator()() [3/3]

template<typename FD >
template<typename ... Args, requires = (Predicate<FD const, Args...>())>
auto ranges::v3::logical_negate_< FD >::operator() ( Args &&...  args) const && -> decltype( !invoke(std::declval<FD const>(), static_cast<Args &&>(args)...) )
noexcept

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Constructor & Destructor Documentation

◆ logical_negate_()

template<typename FD >
constexpr ranges::v3::logical_negate_< FD >::logical_negate_ ( )
noexcept
Precondition
DefaultConstructible<FD>()