搜索

首页  >  问答  >  正文

c++ lambda表达式的问题

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

PHP中文网PHP中文网2803 天前538

全部回复(2)我来回复

  • PHP中文网

    PHP中文网2017-04-17 15:08:19

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

    回复
    0
  • 怪我咯

    怪我咯2017-04-17 15:08:19

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

    #include <functional>
    
    std::function<void* (void*)> fun;
    
    fun = [](void* _This) -> void* { return NULL;};
    
    fun(NULL);

    回复
    0
  • 取消回复