【发布时间】:2010-08-23 08:55:54
【问题描述】:
假设我有一个函数f(a, b, c)。是否可以创建函数指针 g 和 h,以便当您使用 g 和 h 时,它们对参数之一使用预定值?
例如,(*g)(b, c) 将等效于 f(1, b, c),(*h)(b, c) 将等效于调用 f(2, b, c)。
我这样做的原因是我正在调用一个函数,我可以获取一个指针(通过 dlsym),并且该函数的行为完全不同,具体取决于第一个参数是什么(以至于它们不应该t真的被称为相同的东西)。更重要的是,在主程序中使用的函数指针变量通常只能带两个参数,因为这是导入函数有三个的特殊情况(但实际上只需要两个,一个本质上是设置参数)。
谢谢。
【问题讨论】:
-
你想要的叫做柯里化。看这个问题:stackoverflow.com/questions/152005/…
-
@camh:请注意,这个问题是很久以前提出的。现在指向
std::bind(boost::bind)的答案将是压倒性的。:)
标签: c++ function-pointers