【发布时间】:2018-11-22 09:37:53
【问题描述】:
在libevent中有一个回调函数类型被event_new()使用。
typedef void (*event_callback_fn)(evutil_socket_t, short, void *);
我想将 lambda 与 event_callback_fn 一起使用。
如果我使用
[](evutil_socket_t fd, short flags, void * _param){}
一切正常。
但是如果我使用 lambda 捕获列表
[&](evutil_socket_t fd, short flags, void * _param){}
event_new() 不会被编译。
【问题讨论】:
-
只有无捕获的 lambda 可以转换为指向函数的指针。如果您需要捕获,那么您需要以其他方式解决它。
-
@Basile Starynkevitch, 所以 event_new(_base, -1, EV_TIMEOUT, [](evutil_socket_t fd, short flags, void * _param){ }, [](){});像这样?还是编译错误
标签: c++11 lambda libevent boost-lambda