搜尋

首頁  >  問答  >  主體

c++ lambda表达式的问题

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

PHP中文网PHP中文网2805 天前547

全部回覆(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
  • 取消回覆