Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::unary_negate(3)	      C++ Standard Libary	  std::unary_negate(3)

NAME
       std::unary_negate - std::unary_negate

Synopsis
	  Defined in header <functional>
	  template< class Predicate >
	  struct	       unary_negate		 :		public
       (until C++11)
	  std::unary_function<Predicate::argument_type,	bool>;
									   (since
       C++11)
	  template<		 class		     Predicate		     >
       (deprecated in
	  struct						 unary_negate;
       C++17)
									   (re-
       moved in	C++20)

	  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
	  from	  std::ref,    std::cref,    std::negate,    std::logical_not,
       std::mem_fn, std::function,
	  std::hash, or	from another call to std::not1 have this type defined,
       as are function
	  objects derived from the deprecated std::unary_function.

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

Member types
	  Type		Definition
	  argument_type	Predicate::argument_type
	  result_type	bool

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

       std::unary_negate::unary_negate

	  explicit  unary_negate(  Predicate  const& pred );		(until
       C++14)
	  explicit constexpr unary_negate( Predicate const&  pred  );	(since
       C++14)

	  Constructs  a	unary_negate function object with the stored predicate
       pred.

Parameters
	  pred - predicate function object

       std::unary_negate::operator()

	  bool operator()( argument_type const&	x )  const;		(until
       C++14)
	  constexpr  bool  operator()( argument_type const& x )	const;	(since
       C++14)

	  Returns the logical complement of the	result of calling pred(x).

Parameters
	  x - argument to pass through to predicate

Return value
	  The logical complement of the	result of calling pred(x).

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;
	    for	(int i = 0; i <	10; ++i) v.push_back(i);

	    std::unary_negate<less_than_7> not_less_than_7((less_than_7()));

	    std::cout << std::count_if(v.begin(), v.end(), not_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:
	3

See also
	  binary_negate		 wrapper function object returning the comple-
       ment of the binary
	  (deprecated in C++17)	predicate it holds
	  (removed in C++20)	(class template)
	  function		 wraps	callable  object  of  any  copy	  con-
       structible type with
	  (C++11)		specified function call	signature
				(class template)
	  move_only_function	 wraps callable	object of any type with	speci-
       fied function call
	  (C++23)		signature
				(class template)
	  not1			constructs custom std::unary_negate object
	  (deprecated in C++17)	(function template)
	  (removed in C++20)
	  ptr_fun		creates	an adaptor-compatible function	object
       wrapper from a
	  (deprecated in C++11)	pointer	to function
	  (removed in C++17)	(function template)
	  unary_function	adaptor-compatible unary function base class
	  (deprecated in C++11)	(class template)
	  (removed in C++17)

http://cppreference.com		  2022.07.31		  std::unary_negate(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::unary_negate&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help