C++ Lambda 导致 'candidate function not viable:'

标签 c++ lambda emscripten

<分区>

为什么在添加捕获元素时以下 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 不能简单地转换为函数指针。为了获得最大的灵 active (但不是性能)考虑使用 std::function<void(unsigned,void*,void*,unsigned)>

关于C++ Lambda 导致 'candidate function not viable:',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33119717/

相关文章:

C++ DOUBLE* 返回然后重置

c++ - 在对象的另一个类中创建实例

c++ - Visual C++ 逗号运算符和 sse 内在函数

python - 错误 :SparkContext can only be used on the driver, 不在它在工作人员上运行的代码中。有关详细信息,请参阅 SPARK-5063

javascript - 将 FTGL 与 Emscripten 结合使用

c++ - 使用带有 default 关键字的 Initializer 列表

c# - 使用递归创建 (Lambda) 表达式

java - HashMap 按 AtomicInteger 的值排序

javascript - 为什么不能通过保存在IndexedDB中的脚本fopen()打开文件?

javascript - makeSetValue、makeGetValue 和 MaybeExport 在 emscripten 中如何工作?