问题描述
一个函数指针名称申明typedef void* (*SFThreadFuncPtr)(void* pUser);[](void* _This) -> void*{}为什么这个lambda没办法传给这个SFThreadFuncPtr定义的变量?
问题解答
回答1:[](void _This) -> void {}[](void _This) -> void{}编码~~
回答2:lambda表达式的类型是一个闭包,不能直接赋值给指针类型,可以使用std::function对lambda表达式进行包装,然后调用。
#include <functional>std::function<void* (void*)> fun;fun = [](void* _This) -> void* { return NULL;};fun(NULL);