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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::is_placeholder - std::is_placeholder

Synopsis
	  Defined in header <functional>
	  template< class T >		  (since C++11)
	  struct is_placeholder;

	  If  T	 is the	type of	a standard placeholder (_1, _2,	_3, ...), then
       this template is
	  derived  from	 std::integral_constant<int,  1>,   std::integral_con-
       stant<int, 2>,
	  std::integral_constant<int, 3>, respectively.

	  If  T	 is  not a standard placeholder	type, this template is derived
       from
	  std::integral_constant<int, 0>.

	  A program may	specialize this	template for a program-defined type  T
       to implement
	  UnaryTypeTrait   with	  base	characteristic	of  std::integral_con-
       stant<int, N> with
	  positive N to	indicate that T	should be treated as N^th  placeholder
       type.

	  std::bind  uses  std::is_placeholder	to detect placeholders for un-
       bound arguments.

Member constants
	  value	   placeholder value or	0 for non-placeholder types
	  [static] (public static member constant)

Member functions
	  operator int converts	the object to int, returns value
		       (public member function)
	  operator()   returns value
	  (C++14)      (public member function)

Member types
	  Type	     Definition
	  value_type int
	  type	     std::integral_constant<int, value>

Example
       // Run this code

	#include <functional>
	#include <iostream>
	#include <type_traits>

	struct My_2 {} my_2;

	namespace std
	{
	    template<>
	    struct is_placeholder<My_2>	: public integral_constant<int,	2> {};
	}

	int f(int n1, int n2)
	{
	    return n1 +	n2;
	}

	int main()
	{
	    std::cout << "Standard placeholder _5 is for the argument number "
		      <<	std::is_placeholder_v<decltype(std::placehold-
       ers::_5)>
		      << '\n';

	    auto b = std::bind(f, my_2,	2);
	    std::cout  <<  "Adding  2 to 11 selected with a custom placeholder
       gives "
		      << b(10, 11) // the first	argument, namely  10,  is  ig-
       nored
		      << '\n';
	}

Output:
	Standard placeholder _5	is for the argument number 5
	Adding 2 to 11 selected	with a custom placeholder gives	13

See also
	  bind		      binds one	or more	arguments to a function	object
	  (C++11)	      (function	template)
	  _1,  _2,  _3,	 _4,  ...  placeholders	for the	unbound	arguments in a
       std::bind expression
	  (C++11)	      (constant)

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

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

home | help