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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::binary_function - std::binary_function

Synopsis
	  Defined in header <functional>
	  template<

	  class	Arg1,			  (deprecated in C++11)
	  class	Arg2,			  (removed in C++17)
	  class	Result

	  > struct binary_function;

	  binary_function  is  a base class for	creating function objects with
       two arguments.

	  binary_function does not define operator(); it is expected that  de-
       rived classes will
	  define this. binary_function provides	only three types - first_argu-
       ment_type,
	  second_argument_type and result_type - defined by the	template para-
       meters.

	  Some	standard  library function object adaptors, such as std::not2,
       require the
	  function objects they	adapt to have certain types defined; std::not2
       requires	the
	  function object being	adapted	to have	two  types  named  first_argu-
       ment_type and
	  second_argument_type.	 Deriving function objects that	take two argu-
       ments from
	  binary_function is an	easy way to make them  compatible  with	 those
       adaptors.

	  binary_function is deprecated	in C++11 and removed in	C++17.

Member types
	  Type		       Definition
	  first_argument_type  Arg1
	  second_argument_type Arg2
	  result_type	       Result

Example
       // Run this code

	#include <algorithm>
	#include <functional>
	#include <iostream>
	#include <vector>

	struct same : std::binary_function<int,	int, bool>
	{
	    bool operator()(int	a, int b) const	{ return a == b; }
	};

	int main()
	{
	    std::vector<int> v1{ 0, 1, 2, 3, 4,	5, 6, 7, 8, 9, 10};
	    std::vector<int> v2{10, 9, 8, 7, 6,	5, 4, 3, 2, 1, 0 };
	    std::vector<bool> v3(v1.size());

	    std::transform(v1.begin(),	 v1.end(),   v2.begin(),   v3.begin(),
       std::not2(same()));

	    std::cout << std::boolalpha;
	    for	(std::size_t i = 0; i <	v1.size(); ++i)
		std::cout << v1[i] << '	' << v2[i] << '	' << v3[i] << '\n';
	}

Output:
	0 10 true
	1 9 true
	2 8 true
	3 7 true
	4 6 true
	5 5 false
	6 4 true
	7 3 true
	8 2 true
	9 1 true
	10 0 true

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

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

home | help