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)

	  std::unary_negate is a wrapper function object returning the comple-
       ment 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.

	  std::unary_negate  objects  are easily constructed with helper func-
       tion 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)
	  constexpr  explicit  unary_negate(  Predicate	const& pred );	(since
       C++14)

	  Constructs a std::unary_negate function object with the stored pred-
       icate 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(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

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		  2024.06.10		  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.1.quarterly>

home | help