std::is_bind_expression (3) - Linux Manuals

std::is_bind_expression: std::is_bind_expression


std::is_bind_expression - std::is_bind_expression


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 BaseCharacteristic 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 > (since C++17)
inline constexpr bool is_bind_expression_v = 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
         (public static member constant)

Member functions

              converts the object to bool, returns value
operator bool (public member function)

operator() returns value
              (public member function)

Member types

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


// 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 {
      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';


  Adding 2 to the sum of 10 and 11 gives 23

See also

bind binds one or more arguments to a function object
        (function template)