让我有一个功能
void f1(type_a a, type_b b, type_c c)
我想将其转换为
void f2(type_a a, type_b b)
而不是c将传递给我的对象。
我怎样才能使用boost:bind?
答案 0 :(得分:1)
我认为这样的事情
boost::bind(&f1, _1, _2, c_default_value);
答案 1 :(得分:0)
C ++不是一种函数式语言,因此无法对函数进行真正的部分应用。你能做的是以下几点:
#include <boost/bind.hpp>
void f1(int a, double b, char c)
{}
int main()
{
auto binder = boost::bind(&f1, _1, _2, 'c');
binder(1, 2.0);
}
但是请注意,虽然您可以将binder
传递给任何需要可调用的上下文,但不可转换为指向函数的指针