Maison  >  Questions et réponses  >  le corps du texte

c++ lambda表达式的问题

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

PHP中文网PHP中文网2764 Il y a quelques jours515

répondre à tous(2)je répondrai

  • PHP中文网

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

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

    répondre
    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);

    répondre
    0
  • Annulerrépondre