分类:函数对象、适配器 | 组件类型:类型 |
请注意,类型为Result (*)(Arg1, Arg2)是一个完美的 二元函数 对象,并且可以传递给期望参数为 二元函数 的 STL 算法。使用该唯一的理由pointer_to_binary_functionclass 是如果您需要在需要 可适用的二元函数 的上下文中使用普通函数,例如,作为函数对象适配器的参数。
大多数情况下,您不需要声明类型为pointer_to_binary_function的对象。几乎总可以用ptr_fun函数构建一个。
list<char*> L; ... list<char*>::iterator item = find_if(L.begin(), L.end(), not1(binder2nd(ptr_fun(strcmp), "OK")));
参数 | 说明 | 默认值 |
---|---|---|
Arg1 | 函数对象的第一个参数类型 | |
Arg2 | 函数对象的第二个参数类型 | |
Result | 函数对象的返回类型 |
成员 | 定义位置 | 说明 |
---|---|---|
first_argument_type | 可适用的二元函数 | 第一个参数的类型Arg1. |
second_argument_type | 可适用的二元函数 | 第二个参数的类型Arg2 |
result_type | 可适用的二元函数 | 返回类型的类型Result |
Result operator()(Arg1 x, Arg2 y) | 二元函数 | 函数调用运算符。 |
pointer_to_binary_function(Result (*f)(Arg1, Arg2)) | pointer_to_binary_function | 见下文。 |
pointer_to_binary_function() | pointer_to_binary_function | 见下文。 |
template <class Arg1, class Arg2, class Result> pointer_to_unary_function<Arg1, Arg2, Result> ptr_fun(Result (*x)(Arg1, Arg2)); |
pointer_to_binary_function | 见下文。 |
成员 | 说明 |
---|---|
pointer_to_binary_function(Result (*f)(Arg1, Arg2)) | 构造函数。创建一个pointer_to_binary_function底层函数为f. |
pointer_to_binary_function() | 默认构造函数。这将创建一个pointer_to_binary_function其没有底层函数,因此实际上无法调用。 |
template <class Arg1, class Arg2, class Result> pointer_to_unary_function<Arg1, Arg2, Result> ptr_fun(Result (*x)(Arg1, Arg2)); |
如果f类型为Result (*)(Arg1, Arg2)然后ptr_fun(f)相当于pointer_to_binary_function<Arg1,Arg2,Result>(f),但更方便。这是一个全局函数,而不是成员函数。 |