C++ 导致'candidate function not viable:'的 Lambda
C++ Lambda causing 'candidate function not viable:'
为什么在添加捕获元素时下面的lambda不遵循签名?
[&callback](unsigned handle, void* userData, void* data, unsigned size) -> void { ... }
,但这将?
[](unsigned handle, void* userData, void* data, unsigned size) -> void { ... }
签名:
typedef void (*em_async_wget2_data_onload_func)(unsigned, void*, void*, unsigned);
带捕获的lambda不能简单地转换为函数指针。为了获得最大的灵活性(而不是性能),可以考虑使用std::function<void(unsigned,void*,void*,unsigned)>
只有未捕获的lambda可以转换为指向函数的指针。
相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 可组合的lambda/std::函数与std::可选
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- 如何建立使用模板函数的lambda函数的尾部返回类型
- 如何将lambda作为模板类的成员函数参数
- C++从其他 constexpr 创建 lambda 不能按顺序执行 Constexpr
- 在 lambda 捕获中声明的变量的类型推导
- 我可以将调用类的"this"传递给 lambda 函数吗?
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- 模板函数指针和lambda
- 两组使用lambda函数的大括号
- 使lambda不可复制/不可移动
- FLTK:按下哪个按钮 - 将数字传递给按钮的回调 (lambda)
- 尝试将lambda函数放在队列中时出现一般分配器错误(可能是与unique_ptr有关的错误)
- 将带有unique_ptr的可变 lambda 传递给 const&std::function
- AWS Lambda C++运行时权限被拒绝
- 捕获lambda中的std::数组
- 这 4 个 lambda 表达式之间有什么区别?
- 在实现文件中使用头文件的通用 lambda
- C++ 导致'candidate function not viable:'的 Lambda