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

NAME
     std::unary_function - std::unary_function

Synopsis
	Defined in header <functional>
	template<  typename  ArgumentType, typename ResultType >  (deprecated in
     C++11)
	struct	unary_function; 				   (removed   in
     C++17)

	std::unary_function  is  a base class for creating function objects with
     one argument.

	std::unary_function does not define operator(); it is expected that  de-
     rived classes
	will  define  this.  std::unary_function provides only two types - argu-
     ment_type and
	result_type - defined by the template parameters.

	Some standard library function object adaptors, such as  std::not1,  re-
     quire the
	function objects they adapt to have certain types defined; std::not1 re-
     quires the
	function object being adapted to have a type named argument_type. Deriv-
     ing function
	objects  that  take one argument from std::unary_function is an easy way
     to make them
	compatible with those adaptors.

	std::unary_function is deprecated in C++11.

Member types
	Type	      Definition
	argument_type ArgumentType
	result_type   ResultType

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(10, 7);
	  v[0] = v[1] = v[2] = 6;

	  std::cout	    <<	       std::count_if(v.begin(), 	v.end(),
     std::not1(less_than_7()));

	  // C++11 solution:
	  // Cast to std::function<bool (int)> somehow - even with a lambda
	  // std::cout << std::count_if(v.begin(), v.end(),
	  //	  std::not1(std::function<bool	(int)>([](int i) { return i < 7;
     })));
      }

Output:
      7

See also
	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
	(C++23) 		  call signature
				  (class template)
	ptr_fun 		  creates an adaptor-compatible function  object
     wrapper from
	(deprecated in C++11)	  a pointer to function
	(removed in C++17)	  (function template)
	pointer_to_unary_function  adaptor-compatible  wrapper	for a pointer to
     unary function
	(deprecated in C++11)	  (class template)
	(removed in C++17)
	binary_function 	  adaptor-compatible binary function base class
	(deprecated in C++11)	  (class template)
	(removed in C++17)

http://cppreference.com 	   2024.06.10		  std::unary_function(3)

home | help