Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::unary_negate

      From cppreference.com
      <cpp‎ |utility‎ |functional
       
       
      Utilities library
       
      Function objects
      Function invocation
      (C++17)(C++23)
      Identity function object
      (C++20)
      Old binders and adaptors
      (until C++17*)
      (until C++17*)
      (until C++17*)
      (until C++17*)  
      (until C++17*)
      (until C++17*)(until C++17*)(until C++17*)(until C++17*)
      (until C++20*)
      (until C++20*)
      (until C++17*)(until C++17*)
      (until C++17*)(until C++17*)

      (until C++17*)
      (until C++17*)(until C++17*)(until C++17*)(until C++17*)
      unary_negate
      (until C++20*)
      (until C++20*)
       
      Defined in header<functional>
      template<class Predicate>
      struct unary_negate:publicstd::unary_function<Predicate::argument_type,bool>;
      (until C++11)
      template<class Predicate>
      struct unary_negate;
      (since C++11)
      (deprecated in C++17)
      (removed in C++20)

      std::unary_negate is a wrapper function object returning the complement of the unary predicate it holds.

      The unary predicate type must define a member type,argument_type, that is convertible to the predicate's parameter type. The unary function objects obtained fromstd::ref,std::cref,std::negate,std::logical_not,std::mem_fn,std::function,std::hash, or from another call tostd::not1 have this type defined, as are function objects derived from the deprecatedstd::unary_function.

      std::unary_negate objects are easily constructed with helper functionstd::not1.

      Contents

      [edit]Member types

      Type Definition
      argument_typePredicate::argument_type
      result_typebool

      [edit]Member functions

      (constructor)
      constructs a new unary_negate object with the supplied predicate
      (public member function)
      operator()
      returns the logical complement of the result of a call to the stored predicate
      (public member function)

      std::unary_negate::unary_negate

      explicit unary_negate( Predicateconst& pred);
      (until C++14)
      constexprexplicit unary_negate( Predicateconst& pred);
      (since C++14)

      Constructs astd::unary_negate function object with the stored predicatepred.

      Parameters

      pred - predicate function object

      std::unary_negate::operator()

      bool operator()( argument_typeconst& x)const;
      (until C++14)
      constexprbool operator()( argument_typeconst& x)const;
      (since C++14)

      Returns the logical complement of the result of callingpred(x).

      Parameters

      x - argument to pass through to predicate

      Return value

      The logical complement of the result of callingpred(x).

      [edit]Example

      Run this code
      #include <algorithm>#include <functional>#include <iostream>#include <vector> struct less_than_7:std::unary_function<int,bool>{bool operator()(int i)const{return i<7;}}; int main(){std::vector<int> v(7,7);    v[0]= v[1]= v[2]=6;     std::unary_negate<less_than_7> not_less_than_7((less_than_7()));// C++11 solution:// Use std::function<bool (int)>// std::function<bool (int)> not_less_than_7 =//     [](int x)->bool { return !less_than_7()(x); }; std::cout<<std::count_if(v.begin(), v.end(), not_less_than_7);}

      Output:

      4

      [edit]See also

      (deprecated in C++17)(removed in C++20)
      wrapper function object returning the complement of the binary predicate it holds
      (class template)[edit]
      (C++11)
      copyable wrapper of any copy constructible callable object
      (class template)[edit]
      move-only wrapper of any callable object that supports qualifiers in a given call signature
      (class template)[edit]
      (deprecated in C++17)(removed in C++20)
      constructs customstd::unary_negate object
      (function template)[edit]
      (deprecated in C++11)(removed in C++17)
      creates an adaptor-compatible function object wrapper from a pointer to function
      (function template)[edit]
      (deprecated in C++11)(removed in C++17)
      adaptor-compatible unary function base class
      (class template)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/utility/functional/unary_negate&oldid=154483"

      [8]ページ先頭

      ©2009-2025 Movatter.jp