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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::function::target - std::function::target

Synopsis
	  template< class T >		    (1)	(since C++11)
	  T* target() noexcept;
	  template< class T >		    (2)	(since C++11)
	  const	T* target() const noexcept;

	  Returns a pointer to the stored callable function target.

Parameters
	  (none)

Return value
	  A pointer to the stored function if target_type() == typeid(T), oth-
       erwise a	null
	  pointer.

Example
       // Run this code

	#include <functional>
	#include <iostream>

	int f(int, int)	{ return 1; }
	int g(int, int)	{ return 2; }
	void test(std::function<int(int, int)> const& arg)
	{
	    std::cout << "test function: ";
	    if (arg.target<std::plus<int>>())
		std::cout << "it is plus\n";
	    if (arg.target<std::minus<int>>())
		std::cout << "it is minus\n";

	    int	(*const* ptr)(int, int)	= arg.target<int(*)(int, int)>();
	    if (ptr && *ptr == f)
		std::cout << "it is the	function f\n";
	    if (ptr && *ptr == g)
		std::cout << "it is the	function g\n";
	}

	int main()
	{
	    test(std::function<int(int,	int)>(std::plus<int>()));
	    test(std::function<int(int,	int)>(std::minus<int>()));
	    test(std::function<int(int,	int)>(f));
	    test(std::function<int(int,	int)>(g));
	}

Output:
	test function: it is plus
	test function: it is minus
	test function: it is the function f
	test function: it is the function g

See also
	  target_type obtains the typeid of the	stored target
		      (public member function)

http://cppreference.com		  2022.07.31	      std::function::target(3)

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

home | help