c++ lambda表达式的问题

一个函数指针名称申明
typedef void* (*SFThreadFuncPtr)(void* pUser);
[](void* _This) -> void*{}
为什么这个lambda没办法传给这个SFThreadFuncPtr定义的变量?

阅读 2.8k
2 个回答
新手上路,请多包涵

[](void _This) -> void {}
[](void _This) -> void{}
编码~~

lambda表达式的类型是一个闭包,不能直接赋值给指针类型,可以使用std::functionlambda表达式进行包装,然后调用。

#include <functional>

std::function<void* (void*)> fun;

fun = [](void* _This) -> void* { return NULL;};

fun(NULL);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题