table of contents
        
      
      
    - Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 - Leap-15.6
 
| 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_constant<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_constant<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 unbound
    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::placeholders::_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 ignored
  
   << '\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)
| 2024.06.10 | http://cppreference.com |