如何拆分功能:绑定

时间:2016-11-23 12:47:17

标签: c++ posix bind

我需要在嵌入的Posix中编译bind函数,并且无法使用boost::bindstd::bind

所以我想拆分这个功能:  threadReducer.reduce(boost::bind(&DepthMap::observeDepthRow, this, _1, _2, _3), 3, height-3, 10);

函数observeDepthRow:
void DepthMap::observeDepthRow(int yMin, int yMax, RunningStats* stats)
并且功能减少:
void IndexThread::reduce(boost::function<void(int,int,RunningStats*)> callPerIndex, int first, int end, int stepSize = 0)

Plz,帮我拆分功能,我不擅长C ++

1 个答案:

答案 0 :(得分:0)

如果您不能使用boost或c ++ 11 ..那么在这种情况下您可以尝试这样:

void IndexThread::reduce(void(*function)(int,int,RunningStats*), int first, int end, int stepSize = 0)

并制作observeDepthRow static

static void DepthMap::observeDepthRow(int yMin, int yMax, RunningStats* stats)

然后你可以这样称呼它:

threadReducer.reduce(observeDepthRow, 3, height-3, 10);

虽然在这种情况下,如果您不希望这样做,您必须制作方法static,所以请查看this