std::is_bind_expression(3)

NAME
std::is_bind_expression - std::is_bind_expression

Synopsis
   Defined in header <functional>
   template< class T > (since C++11)
   struct is_bind_expression;
   If T is the type produced by a call to std::bind, this template is derived from
   std::true_type. For any other type, this template is derived from std::false_type.
   This template may be specialized for a user-defined type T to implement
   UnaryTypeTrait with base characteristic of std::true_type to indicate that T should
   be treated by std::bind as if it were the type of a bind subexpression: when a
   bind-generated function object is invoked, a bound argument of this type will be
   invoked as a function object and will be given all the unbound arguments passed to
   the bind-generated object.
  Helper variable template
   template< class T >
   inline constexpr bool is_bind_expression_v = (since C++17)
   is_bind_expression<T>::value; Inherited from std::integral_constant

Member constants
   value true if T is a function object generated by std::bind, false otherwise
   [static] (public static member constant)

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

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

Example
// Run this code
 #include <iostream>
 #include <type_traits>
 #include <functional>
 struct MyBind {
     typedef int result_type;
     int operator()(int a, int b) const { return a + b; }
 };
 namespace std {
     template<>
     struct is_bind_expression<MyBind> : public true_type {};
 }
 int f(int n1, int n2)
 {
     return n1+n2;
 }
 int main()
 {
     // as if bind(f, bind(MyBind(), _1, _2), 2)
     auto b = std::bind(f, MyBind(), 2);
     std::cout << "Adding 2 to the sum of 10 and 11 gives " << b(10, 11) << '\n';
 }

Output:
 Adding 2 to the sum of 10 and 11 gives 23

See also
   bind binds one or more arguments to a function object
   (C++11) (function template)