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>

	  The template may be specialized for any  user-defined	 T  type:  the
       specialization must
	  satisfy   UnaryTypeTrait  with  base	characteristic	of  std::inte-
       gral_constant<int, N>
	  with N > 0 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.

	 Helper	variable template

	  template<		    class		  T		     >
       (since C++17)
	  inline constexpr int is_placeholder_v	= is_placeholder<T>::value;

       Inherited from std::integral_constant

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 <iostream>
	#include <type_traits>
	#include <functional>

	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<decltype(std::placehold-
       ers::_5)>::value
		      << '\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		  2022.07.31		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.0>

home | help