…って作った後に参照キャプチャ/コピーキャプチャの存在を知った。 意味ない努力したけどメモ代わりに書いておく。
// ラムダ式受け取る側
#include <functional>
...
BOOL Choge::CallFunc(std::function<BOOL(void*)> func,void* p_param){
....
//関数コール
BOOL result = func(p_param)
....
return result;
}
// 呼び出し側
main(){
Choge hoge;
typedef struct _PARAM{
long arg1;
long arg2;
long arg3;
}PARAM;
PARAM param;
param.arg1 = 100;
param.arg2 = 200;
param.arg3 = 300;
hoge.CallFunc( [](void* p_param) -> BOOL{
PARAM *p = (PARAM *)p_param;
AfxMessageBox(_T("ラムダ!"));
...
return TRUE;
}
,¶m
);
}
ネタ元