std::is_bind_expression

来自cppreference.com
< cpp‎ | utility‎ | functional

 
 
 
函数对象
函数包装
(C++11)
(C++11)
(C++17)
绑定
(C++11)
is_bind_expression
(C++11)
引用包装
(C++11)
(C++11)
运算符包装
取反器
(过时)
(过时)

(过时)
查找器
旧绑定器与适配器
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)

(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
 
定义于头文件 <functional>
template< class T >
struct is_bind_expression;
(C++11 起)
Tstd::bind的调用所产生的类型,这个模板提供成员value等于true。对于任何其他类型,valuefalse.
原文:
If T is the type produced by a call to std::bind, this template provides the member constant value equal true. For any other type, value is false.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
这个模板可以专门为一个用户定义的类型,应被视为std::bind,如果它是一个绑定的子表达式的类型:当绑定生成的函数对象被调用时,这种类型的绑定参数的函数将被调用对象,将所有未绑定的参数传递给绑定生成的对象.....
原文:
This template may be specialized for a user-defined type which should be treated by std::bind as if it was 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.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

目录

继承自 std::integral_constant

成员常量

value
[静态]
T is a function object generated by std::bind则为 true ,否则为 false
(公开静态成员常量)

成员函数

operator bool
转换对象为 bool ,返回 value
(公开成员函数)
operator()
(C++14)
返回 value
(公开成员函数)

成员类型

类型 定义
value_type bool
type std::integral_constant<bool, value>

[编辑] 示例

#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::operator(), _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

[编辑] 另请参阅

(C++11)
绑定一或多个参数到函数对象
(函数模板) [编辑]