c++ lambda表达式的问题

浏览:35日期:2023-04-02

问题描述

一个函数指针名称申明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);

相关文章: