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;

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

	  std::binary_function does not	define operator(); it is expected that
       derived classes
	  will define this. std::binary_function provides only three types -
	  first_argument_type, second_argument_type and	result_type -  defined
       by the template
	  parameters.

	  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
	  std::binary_function is an easy way to  make	them  compatible  with
       those adaptors.

	  std::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<char> v1{'A', 'B', 'C',	'D', 'E'};
	    std::vector<char> v2{'E', 'D', 'C',	'B', 'A'};
	    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:
	A != E : true
	B != D : true
	C != C : false
	D != B : true
	E != A : 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		  2024.06.10	       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.1.quarterly>

home | help